【问题标题】:iOS app not asking for permissions on iOS7 deviceiOS 应用程序未在 iOS7 设备上请求权限
【发布时间】:2016-01-11 09:47:12
【问题描述】:

我有一个使用以下代码启用推送通知的 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 上使用时,它不会要求权限,但它接收通知很好,无法理解问题.

【问题讨论】:

  • 如果您的应用程序已经获得了操作权限,除非设备重置或应用程序卸载至少一天,否则它不会再请求它。您确定您之前没有授予您的应用在该 iPhone 4 上推送的权限吗?
  • 用户说他从来没有被要求过
  • 这意味着该应用程序确实具有权限,尽管在安装该应用程序之前。没有权限,他不可能收到任何推送。要求用户在设置菜单中检查应用程序的权限。他可能只是卸载了以前的版本,但立即卸载了你给他的最新版本

标签: ios objective-c apple-push-notifications ios-permissions


【解决方案1】:

看到您的用户在没有显示权限对话框的情况下收到推送通知,必须是以下场景:

  1. 他在他的 iPhone 4s 上安装了以前的版本,他已授权推送通知。
  2. 他很快卸载了之前的版本并安装了你给他的最新版本,没有给设备一天的时间重新安装。
  3. 结果是他没有看到任何要求推送通知权限的对话,因为之前已经授予了权限。

根据Apple Technical Note 2265

支持推送的应用首次注册推送通知时, iOS 会询问用户是否希望接收该应用的通知。 一旦用户对此警报做出响应,它就不会再次出现 除非设备已恢复或应用程序已被卸载 至少一天。

如果您想模拟您的应用的首次运行,您可以离开 该应用程序卸载了一天。您可以在没有的情况下实现后者 按照以下步骤实际等待一天:

从设备中删除您的应用。完全关闭设备并 重新打开它。转到设置 > 常规 > 日期和时间并设置 提前一天或更长时间约会。再次完全关闭设备,然后 重新打开它

如果您要求您的用户在设置菜单中检查应用程序特定权限,他肯定会看到推送权限。否则他根本不会收到推送通知。

【讨论】:

    猜你喜欢
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    • 2022-01-14
    相关资源
    最近更新 更多