如何知道用户是否允许推送通知

时间:2014-04-08 10:49:14

标签: ios notifications push-notification apple-push-notifications

我看到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)];

但是对于应用程序的首次启动 - 不会调用成功和失败的委托方法,这意味着没有办法确定。

有什么解决方法吗?

1 个答案:

答案 0 :(得分:0)

除了您已经链接的答案之外,我能想到的一个解决方法是,一旦用户成功注册推送,您就可以将设备令牌存储在NSUserDefaults中。

通过这种方式,您可以检查该用户设置的值是否为nil