本地通知停止工作,无法找出原因

时间:2016-05-22 18:45:51

标签: ios swift uilocalnotification

去年的某个时候,我收到了本地通知,为我的iOS项目工作,然后把它放在一边,但几周前我回来时发现他们已经不再工作了。我已经挖了好几天,我完全被难倒了。徽章仍然可以通过后台提取正确更新,但不再发送通知提醒。这是我测试的最小设置。

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

我尝试的事情:

  • 卸载/重新安装应用程序(设备和模拟器)
  • 更改捆绑包标识符
  • 禁用/重新启用后台获取功能
  • 通过添加fireDate属性
  • 来显示延迟的本地通知
  • 尝试过willFinishLaunchingWithOptions和didFinishLaunchingWithOptions
  • 我调试了它,并且100%确定在我模拟后台提取并且调用presentLocalNotificationNow时执行performFetchWithCompletionHandler

设定:

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

我错过了哪些API发生了变化,或者我在做什么时出现了一些错误?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

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)
}
相关问题