ios - 应用程序 :didReceiveLocalNotification never called on ios 8

标签 ios uilocalnotification ios8

是否存在任何已知问题:

application:didReceiveLocalNotification delegate

在 iOS 8 上?

我的应用程序使用 UILocalNotification 创建本地通知。当应用程序在后台时,我会收到通知,当我单击通知横幅时,它会移动到我的应用程序。但是这个方法:

-(void) application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification

从不在 iOS 8(Xcode 5.1.1) 上调用,但在 iOS 7 或更早版本上运行良好。

附言我还测试了这个网站的项目: http://www.appcoda.com/ios-programming-local-notification-tutorial/ 它不适用于 iOS 8。

最佳答案

实际上,iOS 8 上的解决方案是向用户请求通知设置的授权,否则委托(delegate)方法 -didReceiveLocalNotification: 将永远不会被调用。您可以通过将此代码添加到 -didFinishLaunchingWithOptions: 方法来实现:

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
{
    [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings
                                                                         settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge)
                                                                         categories:nil]];
}

这将向用户显示一个警告 View ,请求显示通知的权限。如果她接受,则每当触发本地通知时都会调用委托(delegate)方法。

关于ios - 应用程序 :didReceiveLocalNotification never called on ios 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25244281/

相关文章:

ios - UILocalNotification 想要显示权限,但已被授予

ios - 当应用程序处于前台时,UILocalNotification 在通知中心显示警报

ios - 你能从 IOS 8 邮件应用程序调用操作扩展吗

ios - nskeyedarchiver 不适用于 ios8 但适用于 ios7 和模拟器

ios - JSON 和 Xcode 6 UITableView

ios - 如何在没有外部库的情况下干净地将文件发布到 API 端点?

iphone - 无法在 iOS 上使用非 QWERTY 键盘打字

ios - 如果应用程序位于前台,则单击本地通知时打开特定 View Controller ?

ios - iOS8自定义键盘设置。 bundle 未显示

ios - 作为 UIWindow subview 添加的 UIView 不响应点击