是否存在任何已知问题:
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/