我在swift中面临一个奇怪的本地通知问题。 我正在提出像这样的本地通知
let notification = UILocalNotification()
var body = "Hi Krishna";
if(region.identifier == "entry1") {
body += " Welcome";
} else {
body += " Bye! Bye!";
}
notification.alertBody = body
notification.soundName = "Default";
notification.userInfo = ["id": "id"];
notification.fireDate = NSDate(timeIntervalSinceNow: 1)
UIApplication.sharedApplication().scheduleLocalNotification(notification)
以及我如何处理appdelegate中的启动选项
if(launchOptions != nil) {
window?.rootViewController?.view.backgroundColor = UIColor.cyanColor();
if let notification = launchOptions![UIApplicationLaunchOptionsLocalNotificationKey] as? UILocalNotification {
window?.rootViewController?.view.backgroundColor = UIColor.blackColor();
if let userInfo = notification.userInfo {
window?.rootViewController?.view.backgroundColor = UIColor.blueColor();
if let id = userInfo["id"] as? String {
window?.rootViewController?.view.backgroundColor = UIColor.redColor();
}
}
}
}
用于调试目的我正在改变视图的背景颜色。 当我点击通知时,我得到青色,这意味着线下失败
launchOptions![UIApplicationLaunchOptionsLocalNotificationKey] as? UILocalNotification
因为我在此行的正上方设置了青色。 所以我不知道为什么这不能转换为UILocalNotification? 有人可以帮助我摆脱这个问题吗?+
实际上还有一件事,如果我正常工作,但我正在使用地理围栏并且我正在安排来自
的通知locationManager(manager: CLLocationManager, didExitRegion region: CLRegion)
在这种情况下,它不起作用。
答案 0 :(得分:0)
您可以在AppDelegate中实施application(_:didReceiveLocalNotification:)
(直接向您提供通知)并在那里处理通知。
答案 1 :(得分:0)
你可以尝试这样投射:
if let notification:UILocalNotification = launchOptions?[UIApplicationLaunchOptionsLocalNotificationKey] as? UILocalNotification {
//do stuff with notification
}