本地通知停止工作,不知道为什么

去年有一段时间,我在本地的iOS项目上收到了一些通知,然后在几个星期前回来的时候,我发现他们不再工作了。 我已经挖了几天,我完全被困住了。 通过后台提取,徽章仍能正常更新,但不再发送通知提醒。 这里是我有testing的最小设置。

AppDelegate中:

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) } 

我试过的东西:

  • 卸载/重新安装应用程序(设备和模拟器)
  • 更改捆绑标识符
  • 禁用/重新启用后台提取function
  • 通过添加fireDate属性呈现延迟的本地通知
  • 尝试willFinishLaunchingWithOptions和didFinishLaunchingWithOptions
  • 我debugging了它,100%肯定performFetchWithCompletionHandler执行时,我模拟背景获取和presentLocalNotificationNow调用

build立:

  • Xcode 7.3.1(从以前的版本开始,可能是6.xx)
  • Swift 2.2(在2.1上启动项目并且function正常)
  • iOS 9(8开始项目,function)

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) }