我看到this question,但不明白是否有明确的答案。
我可以通过设置标记来判断用户是否在应用的SECOND启动时按下了“不允许”:
BOOL didRequest = [[NSUserDefaults standardUserDefaults] boolForKey:@"DidRequestPushNotifications"];
UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
if (types == UIRemoteNotificationTypeNone && didRequest)
{
[self showAlertToUserToEnableRemoteNotificationsOnDeviceInSettings];
}
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"DidRequestPushNotifications"];
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
但是对于应用程序的首次启动 - 不会调用成功和失败的委托方法,这意味着没有办法确定。
有什么解决方法吗?
答案 0 :(得分:0)
除了您已经链接的答案之外,我能想到的一个解决方法是,一旦用户成功注册推送,您就可以将设备令牌存储在NSUserDefaults
中。
通过这种方式,您可以检查该用户设置的值是否为nil
。