45

在我的设置标签栏中:

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

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

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

4

3 回答 3

65

简短的回答,是的

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

虽然...

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

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

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

于 2015-07-06T04:40:16.297 回答
34

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

于 2016-09-07T15:15:44.330 回答
4

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

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

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

有关更多信息,请参阅此图片此答案

于 2018-02-23T19:16:06.330 回答