registerUserNotificationSettings不显示提示iOS 8
我似乎无法得到提示在iOS 8.1或8.2中显示registerUserNotificationSettings
。
这里是我在做didFinishLaunchingWithOptions
:
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) { #ifdef __IPHONE_8_0 UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeAlert |UIUserNotificationTypeSound | UIUserNotificationTypeBadge) categories:nil]; NSLog(@"Reg settings %@", settings); [application registerUserNotificationSettings:settings]; #endif }
同样在这里得到正确的电话:
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings{ NSLog(@"Did register - %@", notificationSettings); }
然而却没有提示。 更令人讨厌的是,当设备被locking时,警报将会显示,但是不会给出通知警报声。 任何想法在工作?
使用您的代码,我会在第一次启动应用程序时获得提示,并且只在第一次启动时才会提示。 但是afaik,这是iOS中的预期行为。 至less照片库,麦克风访问等是一样的:
权限提示行为
- 在第一次使用时popup(或者至less是使用它的请求)
- 苹果在设置中添加了一个条目(例如,隐私,或者只是在通知设置下)
第一次使用
在Settings
应用程序中,您可以为每个应用程序configurationNotifications
- 向下滚动,select您的应用程序
- select
Notifications
- 启用/禁用它们,或者调整它们的行为
在iOS上重置推送通知权限警报
当推送应用程序第一次注册推送通知时,iOS会询问用户是否希望接收该应用程序的通知。 一旦用户对此警报作出响应,除非设备已恢复或应用程序已卸载至less一天,否则不会再次显示。
如果您想模拟首次运行您的应用,则可以将该应用卸载一天。 你可以通过以下步骤实现后者,而不需要等待一天:
- 从设备上删除您的应用程序。
- 完全closures设备并重新打开。
- 进入设置>常规>date和时间,并设置date提前一天或更多。
- 将设备再次完全closures,然后重新打开。
来源: https : //developer.apple.com/library/ios/technotes/tn2265/_index.html
更改构build目标的最新版本,你会看到popup消息。 我在iOS 8中遇到同样的问题,但是在iOS 10中显示警报popup消息,此警报消息在应用程序周期中仅显示一次。 除非你删除并重新安装新的。
- (void)registerLocalNotification{ UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes: UIUserNotificationTypeAlert | UIUserNotificationTypeSound categories:nil]; [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; [[UIApplication sharedApplication] registerForRemoteNotifications]; }