考虑这种情况。该应用程序将运行,并且应用程序:didRegisterForRemoteNotificationsWithDeviceToken:接收有关该应用程序有权接收推送通知的信息。
用户将应用置于后台,并删除应用的授权以接收有关设备配置的通知。
用户再次运行应用。从后台返回后,该应用仍然认为它具有接收推送通知的权限。 application:didRegisterForRemoteNotificationsWithDeviceToken:或application:didFailToRegisterForRemoteNotificationsWithError:在这一点上都没有收到任何东西。
是否有办法在任何给定的时间知道应用程序是否有权接收推送通知(从设备的通知首选项中读取内容)?
谢谢。
最佳答案
每当应用程序从后台返回时,您都可以检查[[UIApplication sharedApplication] enabledRemoteNotificationTypes]
。
参见:iOS - Check for push notification support in the app
一旦我确认用户已禁用它,是否可以通过编程将用户定向到设备配置上的通知设置?
否,用于较新的iOS版本。根据Navigate to settings screen in iphone和iOS Launching Settings -> Restrictions URL Scheme,您可以使用-[[UIApplication sharedApplication] openURL:]
导航到“设置”屏幕,但只能在运行iOS 5.0及更低版本的设备上使用。
关于iphone - 知道某个应用程序是否有权即时接收推送通知,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14522246/