ios - 如何在 iOS 中显示带有天气信息的通知横幅?

标签 ios swift apple-push-notifications mobile-application

我想添加一个通知横幅作为对现有 github 应用程序的补充。每当温度上升到 90°F 或 32°C 以上并下降到 50°F 或 10°C 以下时,此横幅就会显示警告。我正在使用 Swift 4 和 xcode 9.4,并且正在开发新的应用程序。

我看过this guidethese instructions构建一个简单的天气应用程序,但他们没有描述如何添加带有温度的通知。有没有办法从应用程序访问天气信息或温度信息。

我已经从 this post 读到关于使用 UNUserNotificationCenterDelegate 的信息并想找到一种简单显示温度警告的方法。如果有任何代码片段可以说明如何实现这一点,我将不胜感激。

最佳答案

在考虑发送通知之前,您需要执行几个步骤。但是让我们在一开始就明确这一点:

  • 您将无法在通知中心收到持续通知,尤其是在 iOS 12 以上版本。用户可以随时关闭通知或关闭您应用中的所有通知。
  • 无法从操作系统访问天气,您需要依赖第三方服务,例如 openweathermap.org

这里没有代码片段,因为它并不像听起来那么微不足道。我将在下面为您提供步骤列表,您可以通过谷歌搜索教程或使用我提供的链接:

  1. CLLocationManagerAlways 选项一起使用,您将需要它根据用户在后台的位置检查温度:这是一个有用的链接,如何获得权限和委派权利: https://www.techotopia.com/index.php/A_Swift_Example_iOS_8_Location_Application .这将是您首次实现挑战的完美解决方案。稍后你可以看看:Significant Location Change
  2. 当您获得用户位置时,您将需要解析来自 API 的响应,并且有大量的教程用于此,但我会推荐相当新的 Codable 方法:https://medium.com/xcblog/painless-json-parsing-with-swift-codable-2c0beaeb21c1
  3. 当您处理 1) 和 2) 并且您选择不进行重大位置更改时,您将需要刷新后台应用程序,这里有来自 Apple 的精彩片段:https://developer.apple.com/documentation/uikit/core_app/managing_your_app_s_life_cycle/preparing_your_app_to_run_in_the_background/updating_your_app_with_background_app_refresh
  4. 然后您可以发送符合您条件的通知https://www.techotopia.com/index.php/An_iOS_10_Local_Notification_Tutorial

快乐编码

关于ios - 如何在 iOS 中显示带有天气信息的通知横幅?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51718016/

相关文章:

ios - Xcode 5 "Invalid Code Signing Entitlements"错误

ios - UIPageViewController 中的 UIScrollView 滚动了多少?

ios - 带有来自 patternImage 的颜色的 CAKeyFrameAnimation

ios - 有限数量的 iOS 设备收到的推送通知

ios - Apple Push Service 证书不受信任

ios - 将 MQTT 与 APNS 结合使用

ios - 如何使用 Xamarin 在 iOS 中更改 NavigationController 的标题文本颜色

ios - UITableView 附件 View

swift - 有没有一种增加可选 Int 的好方法?

arrays - Swift indexOf 不一致的行为