尝试解决几个极端情况,以便在应用中拒绝推送通知时我有两个问题:
1)有没有办法重置用户是否看到弹出通知请求?
2)有没有办法确定用户是否对通知请求说“不”?
答案 0 :(得分:5)
1)不,除非有一些私有API这样做,但Apple不允许这样做
2)第一次启动应用程序后,在调用 registerForRemoteNotificationTypes 之后,您可以检查是否调用了 didRegisterForRemoteNotificationsWithDeviceToken 。如果不是,用户说“不,谢谢”。
答案 1 :(得分: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");
}
}
}
已更新,以便在iOS 8上运行