我怎么知道用户是否不允许推送通知

我看到这个问题,但不明白是否有明确的答案。

我可以通过设置一个标志来判断用户是否在应用程序的第二次启动时按下了“不允许”:

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)]; 

但是,对于应用程序的首次发布 – 两个委托成功和失败的方法都不会被调用,这意味着没有办法知道肯定。

任何工作?

除了你已经链接的答案,我可以想到的一个工作,一旦用户成功注册推,你可以存储设备令牌在NSUserDefaults

这样你可以检查用户设置的值是否nil