Ios 本地通知停止工作,可以';我不明白为什么
在我把iOS项目搁置之前,我在去年的某个时候收到了本地通知,但当我几周前回来时,我注意到它们不再有效。我已经挖了几天了,完全被难住了。徽章仍会通过后台提取正确更新,但不再发送通知警报。这里是我测试的最低设置 AppDelegate:Ios 本地通知停止工作,可以';我不明白为什么,ios,swift,uilocalnotification,Ios,Swift,Uilocalnotification,在我把iOS项目搁置之前,我在去年的某个时候收到了本地通知,但当我几周前回来时,我注意到它们不再有效。我已经挖了几天了,完全被难住了。徽章仍会通过后台提取正确更新,但不再发送通知警报。这里是我测试的最低设置 AppDelegate: func application(application: UIApplication, willFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool { a
func application(application: UIApplication, willFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool {
application.setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum)
application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Badge, .Alert], categories: nil))
return true
}
func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
let localNotification = UILocalNotification()
localNotification.alertAction = "Message"
application.presentLocalNotificationNow(localNotification)
completionHandler(.NoData)
}
我尝试过的事情:
- 卸载/重新安装应用程序(设备和模拟器)
- 更改包标识符
- 禁用/重新启用后台提取功能
- 通过添加fireDate属性来显示延迟的本地通知
- 已尝试将FinishLaunchingWithOptions和didFinishLaunchingWithOptions
- 我已经对它进行了调试,并且100%确定在模拟后台提取时执行performFetchWithCompletionHandler,并且调用presentLocalNotificationNow
- Xcode 7.3.1(从以前的版本开始,可能是6.x.x)
- Swift 2.2(于2.1开始项目,并已投入使用)
- iOS 9(于8月8日启动该项目,并已投入使用)
API中是否有我遗漏的更改,或者我正在做的工作中是否存在错误?谢谢你的帮助 UILocalNotification要求设置
alertBody
才能显示。因此,我们有以下工作:
func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
let localNotification = UILocalNotification()
localNotification.alertBody = "You have a notification"
localNotification.alertAction = "Message"
application.presentLocalNotificationNow(localNotification)
completionHandler(.NoData)
}
UILocalNotification要求设置
alertBody
才能显示。因此,我们有以下工作:
func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
let localNotification = UILocalNotification()
localNotification.alertBody = "You have a notification"
localNotification.alertAction = "Message"
application.presentLocalNotificationNow(localNotification)
completionHandler(.NoData)
}
尝试以下操作:
let mySettings:UIUserNotificationSettings=UIUserNotificationSettings(forTypes:[.Alert.Badge],categories:nil as?Set)UIApplication.sharedApplication().registerNotificationsettings(mySettings)
cat as?Set
给出了一个错误,但我尝试使用Set()
替代,但它不起作用。是的,你必须设置categories:nil
编辑了上面的注释复选框no luck,nil as?Set
生成“表达式类型“Set”不明确,没有更多上下文”尝试以下操作:让mySettings:UIUserNotificationSettings=UIUserNotificationSettings(forTypes:[.Alert,.Badge],categories:nil as?Set)UIApplication.sharedApplication().registerUserNotificationSettings(mySettings)
cat as?Set
给出了一个错误,但我尝试使用Set()
替代,但它不起作用。是的,你必须设置categories:nil
编辑了上面的注释复选框no luck,nil as?Set
生成“表达式类型“Set”不明确,没有更多上下文”