【问题标题】:Is Silent Remote Notifications possible if user has disabled push for the app?如果用户禁用了应用程序的推送,是否可以进行静默远程通知?
【发布时间】:2015-08-19 02:15:57
【问题描述】:

在我的设置标签栏中:

  1. 我有一个特定于功能的开关,可以根据 API 响应关闭或打开。
  2. 从网站只有管理员有权打开/关闭。
  3. 我可以每次在设置点击时调用 /user API 来检查用户的当前设置,但有几个缺点,比如如果用户已经在设置,那么它不会更新 UI 并且每次在设置点击时调用 api 不会这听起来不是一个完美的解决方案。

我认为更好的解决方案是发送静默推送通知,我可以使用它来调用 API 以在需要时更新设置 UI。

但是如果用户禁用了推送通知,我还会收到静默推送吗?处理这种情况的推荐方法是什么?

【问题讨论】:

    标签: ios objective-c push-notification notifications silent-notification


    【解决方案1】:

    简短回答,是的

    对于 iOS 8 中的应用程序开发人员来说,令人兴奋的新机会是,即使用户选择不接收通知,Apple 现在也将提供“静默”推送。此外,“静默推送”不再仅适用于报亭应用。每个应用程序都可以利用此功能在后台刷新内容,从而在用户打开应用程序的那一刻创建最新的响应式体验。

    虽然……

    用户仍然可以通过“后台应用刷新”控件关闭您的应用处理“静默推送”的能力。即使 Apple 推送通知服务 (APN) 会向您的手机发送标记为“内容可用”的推送,但操作系统不会唤醒您的应用程序来接收它,从而将其有效地丢弃在地板上。但是,选择退出“后台应用程序刷新”是一种鲜为人知的功能,与通知没有直接关联。您无法在“通知设置”中访问此首选项 - 它位于“常规”>“后台应用刷新”屏幕下。

    在构建应用程序时请记住这一点。

    来源: https://www.urbanairship.com/blog/watch-list-ios-8-opt-in-changes

    【讨论】:

    • 你确定iOS9仍然如此吗?
    • 适用于iOS8及以后版本。
    • 链接已失效...也许就是这个? urbanairship.com/blog/watch-list-ios-8-opt-in-changes
    • 请记住,如果应用程序具有某种 VoIP 功能,即使“后台应用程序刷新”被禁用,它也可以使用 VoIP 工具推送静默通知并自行启动。可悲的是,iOS 正在变成 Android。更多信息:stackoverflow.com/questions/19068762/…
    • 但是 VoIP 推送似乎对这两种选择都免疫,但用户无法停止 VoIP 推送...
    【解决方案2】:

    这个矩阵可能会有所帮助。在左侧,它显示“didReceiveRemoteNotification:”方法是否会被调用。其他两列与设置应用程序有关。设置 -> YourApp。如果 yourApp 支持通知和后台应用刷新。查看矩阵以检查您的应用何时会收到静默推送。

    【讨论】:

    • “低功耗模式”会影响交付吗?
    • 我不确定,但我认为如果禁用所有,即你的最后一行。如果您的应用位于前台,您仍会收到无提示通知。
    • 如果用户禁用了通知和后台应用刷新,如果我的应用在前台,我仍然不会收到通知。
    【解决方案3】:

    其他答案都很好。但它们不是官方答案。

    官方答案在What's New in Notifications WWDC 2015视频中:

    默认情况下启用静默通知。用户不需要 批准您的 -- 允许您的应用使用它们,并且 您可以在不征求用户许可的情况下开始使用它们。 但无声通知是后台应用背后的机制 刷新。在任何时候,您都知道用户可以进入设置和 禁用它们。所以你不能依赖它们总是可用的。你 不知道用户是否将它们关闭,而您没有得到 通知了。这也意味着静默通知是 尽最大努力交付。这意味着当通知 到达用户的设备上,系统会做一些 选择。

    更多信息请参见this imagethis answer

    【讨论】:

      猜你喜欢
      • 2018-07-23
      • 2021-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-18
      相关资源
      最近更新 更多