我想添加一个通知横幅作为对现有 github 应用程序的补充。每当温度上升到 90°F 或 32°C 以上并下降到 50°F 或 10°C 以下时,此横幅就会显示警告。我正在使用 Swift 4 和 xcode 9.4,并且正在开发新的应用程序。
我看过this guide和these instructions构建一个简单的天气应用程序,但他们没有描述如何添加带有温度的通知。有没有办法从应用程序访问天气信息或温度信息。
我已经从 this post 读到关于使用 UNUserNotificationCenterDelegate 的信息并想找到一种简单显示温度警告的方法。如果有任何代码片段可以说明如何实现这一点,我将不胜感激。
最佳答案
在考虑发送通知之前,您需要执行几个步骤。但是让我们在一开始就明确这一点:
- 您将无法在通知中心收到持续通知,尤其是在 iOS 12 以上版本。用户可以随时关闭通知或关闭您应用中的所有通知。
- 无法从操作系统访问天气,您需要依赖第三方服务,例如 openweathermap.org
这里没有代码片段,因为它并不像听起来那么微不足道。我将在下面为您提供步骤列表,您可以通过谷歌搜索教程或使用我提供的链接:
- 将
CLLocationManager
与Always
选项一起使用,您将需要它根据用户在后台的位置检查温度:这是一个有用的链接,如何获得权限和委派权利: https://www.techotopia.com/index.php/A_Swift_Example_iOS_8_Location_Application .这将是您首次实现挑战的完美解决方案。稍后你可以看看:Significant Location Change - 当您获得用户位置时,您将需要解析来自 API 的响应,并且有大量的教程用于此,但我会推荐相当新的
Codable
方法:https://medium.com/xcblog/painless-json-parsing-with-swift-codable-2c0beaeb21c1 - 当您处理 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
- 然后您可以发送符合您条件的通知https://www.techotopia.com/index.php/An_iOS_10_Local_Notification_Tutorial
快乐编码
关于ios - 如何在 iOS 中显示带有天气信息的通知横幅?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51718016/