【问题标题】:Do Local Notifications need user permission on iOS?本地通知是否需要 iOS 上的用户权限?
【发布时间】:2013-04-09 13:17:57
【问题描述】:

我在我的应用程序中使用 UILocalNotification 来安排通知。通知工作正常,并在我需要时显示。我对此没有意见。我没有做任何远程/推送通知。

让我感到疑惑的是,我从未见过您通常在多个应用程序中看到的用于推送通知的著名权限对话框。我什至重置了我的设备并运行了我的应用程序。这仍然没有导致权限对话框出现。

如果您的应用仅使用本地通知,或者我没有实现某些实际导致应用请求此权限的方法,是否不会显示此权限对话框?

我知道我可以在应用启动后实现我自己的对话框,请求用户提供此权限,但我希望 Apple 能够处理好这一点,特别是因为它在“设置”应用中对远程和本地通知的处理方式相同。

【问题讨论】:

    标签: swift notifications local uilocalnotification


    【解决方案1】:

    是的,在 iOS8 中,本地通知确实需要权限。

    The documentation 为 registerUserNotificationSettings: 规定

    如果您的应用在后台显示警报、播放声音或标记其图标,则您必须在启动周期中调用此方法以请求以这些方式提醒用户的权限。 通常,如果您的应用使用本地或推送通知以提醒用户注意涉及您的应用的新信息,您会提出此请求。

    建议您在安排任何本地通知之前调用此方法或注册推送通知服务。

    【讨论】:

      【解决方案2】:

      Apple 的 presentLocalNotificationNow 和 scheduleLocalNotification 文档说,

      在安排任何本地通知之前,您必须调用 registerUserNotificationSettings: 方法让系统知道您计划向用户显示哪些类型的警报(如果有)。

      所以我不确定此页面中的其他人是如何说本地通知不需要用户权限的。

      查看关于同一主题的其他讨论:

      Ask for User Permission to Receive UILocalNotifications in iOS 8

      【讨论】:

      • 这似乎在 iOS 9 及更高版本中强制执行。
      【解决方案3】:

      注意:这包括推送通知/远程通知

      将 Xcode6 与 iOS7 或 iOS8 一起使用时 测试 registerUserNotificationSettings:API 在运行时可用。

      if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) {  
          UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];  
          [[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];  
          [[UIApplication sharedApplication] registerForRemoteNotifications];  
      } else {  
          [[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];  
      }  
      

      感谢http://corinnekrych.blogspot.ae/2014/07/how-to-support-push-notification-for.html

      【讨论】:

        【解决方案4】:

        是的,没错。本地通知不需要任何操作系统权限。但是,作为一种好的做法,我建议在这种情况下从您的应用程序中为用户提供一个退出选项。 这将在两个方面运作良好:

        1. 一个恼怒的用户,因为一次又一次地看到本地通知而感到沮丧,不知道推送/本地通知之间的区别可能会在应用商店留下差评。
        2. 提供标志来为给定用户打开/关闭此类功能始终是一种很好的做法。

        【讨论】:

        • 同意!我们的应用有帽子选项:)
        【解决方案5】:

        看起来本地通知不需要任何用户权限。权限对话框仅显示推送通知。我可以在没有任何用户许可的情况下安排/取消本地通知。

        【讨论】:

        • 这里也一样:查看新的 iOS10 UserNotificationsCenter - 本地通知是在没有任何访问点的情况下安排的。
        • @Async- 你确定吗?似乎它强制premesions
        猜你喜欢
        • 2018-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-13
        相关资源
        最近更新 更多