我有一个使用以下代码启用推送通知的iOS应用
if ([application respondsToSelector:@selector(isRegisteredForRemoteNotifications)])
{
// iOS 8 Notifications
[application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
[application registerForRemoteNotifications];
}
else
{
// iOS < 8 Notifications
[application registerForRemoteNotificationTypes:
(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)];
}
当这个应用程序在iOS9设备上运行时,它在开始时请求权限就好了,但是当在iOS7,iPhone 4上使用时,它不会要求权限,但它收到通知就好了,无法理解问题
答案 0 :(得分:3)
尽管没有提供权限对话,看到您的用户正在接收推送通知,但必须遵循以下情况:
推送启用的应用首次注册推送通知, iOS会询问用户是否希望接收该应用的通知。 一旦用户响应此警报,就不会再次显示 除非设备已恢复或已卸载应用程序 至少一天。
如果您想模拟首次运行的应用,可以离开 该应用程序已卸载一天。没有你可以实现后者 实际上是按照以下步骤等待一天:
从设备中删除您的应用。完全关闭设备 把它重新打开。转到设置&gt;一般&gt;日期&amp;时间和设定 提前一天或更长时间。再次完全关闭设备 把它重新打开
如果您要求用户在设置菜单中检查应用特定权限,他肯定会看到推送权限。否则他根本就不会收到推送通知。