推送通知权限

Bri*_*ing 7 apple-push-notifications ios

试图在应用程序中拒绝推送通知时解决几个极端情况,我有两个问题:

1)有没有办法重置用户是否看到弹出通知请求?

2)有没有办法确定用户是否对通知请求说"不"?

Phi*_*ert 5

1)不,除非有一些私有API这样做,但Apple不允许这样做

2)第一次启动应用程序时,在调用registerForRemoteNotificationTypes之后,您可以检查是否调用了didRegisterForRemoteNotificationsWithDeviceToken.如果不是,用户说"不,谢谢".


jce*_*ile 5

如果用户更改了权限,您可以随时检查权限的状态,您可以检查它们 applicationDidBecomeActive

- (void)applicationDidBecomeActive:(UIApplication *)application
{
     if ([[UIApplication sharedApplication]  respondsToSelector:@selector(isRegisteredForRemoteNotifications)]) {
        if ([[UIApplication sharedApplication]  isRegisteredForRemoteNotifications]){
            NSLog(@"Notifications Enabled ios 8");
        } else {
            NSLog(@"Notifications not Enabled ios 8");
        }
    } else {
        UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
        if (types & UIRemoteNotificationTypeAlert)
        {
            NSLog(@"Notifications Enabled");
        }
        else
        {
            NSLog(@"Notifications not Enabled");
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

已更新,以使其在iOS 8上运行