我想添加一个通知横幅,作为对现有github应用程序的补充。每当温度上升到90°F或32°C以上,而下降到50°F或10°C以下时,此横幅将显示警告。我正在使用Swift 4和xcode 9.4,并且是新的应用程序开发。
我已经研究了this guide和these instructions来构建一个简单的天气应用程序,但是它们没有描述如何随温度添加通知。是否可以通过应用程序访问天气信息或有关温度的信息。
我已经从this post阅读到有关使用UNUserNotificationCenterDelegate的信息,并希望找到一种简单显示温度警告的方法。我将不胜感激任何可以说明如何实现此目标的代码段。
答案 0 :(得分:3)
您需要在应用程序处于前台状态且温度高于32°C或低于10°C时触发本地通知,从ios 10苹果允许您在应用程序处于运行状态时在应用程序内发送本地通知在前台运行。因此,以下是在您的应用程序处于后台状态时创建本地通知的步骤
AppDelegate application:didFinishLaunchingWithOptions:
中的请求通知权限
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge], completionHandler: {didAllow, error in
})
设置UNUserNotificationCenter.current().delegate = self
在您的应用程序委托中实施UNUserNotificationCenterDelegate
协议
覆盖UNUserNotificationCenterDelegate的willpresent方法
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
completionHandler([.alert, .badge, .sound])
}
当温度高于32°C或低于10°C时会触发通知
let center = UNUserNotificationCenter.current()
let content = UNMutableNotificationContent()
content.title = "Simple Notification"
content.subtitle = ""
content.body = "Notification is here"
content.sound = UNNotificationSound.default()
let trigger = UNTimeIntervalNotificationTrigger(timeInterval:2.0, repeats: false)
let request = UNNotificationRequest(identifier: "ContentIdentifier", content: content, trigger: trigger)
此代码创建一个本地通知,该通知将在2秒后显示给用户
有关Notification的更多信息,请阅读Apple文档 UNUserNotificationCenter UNUserNotificationCenterDelegate
答案 1 :(得分:3)
在考虑发送通知之前,您需要执行几个步骤。但是让我们在开始时就清楚这一点:
没有代码片段,因为它听起来并不简单。我将为您提供以下步骤列表,您可以为此使用Google教程或使用我将提供的链接:
CLLocationManager
与Always
选项一起使用,您将需要此选项来根据背景中的用户位置检查温度:以下是一个有用的链接,该链接如何获取权限和授权:https://www.techotopia.com/index.php/A_Swift_Example_iOS_8_Location_Application 。这将是您第一次实施挑战的完美解决方案。稍后您可以看看:Significant Location Change Codable
方法:https://medium.com/xcblog/painless-json-parsing-with-swift-codable-2c0beaeb21c1 < / li>
快乐编码