如果用户禁用了应用程序的推送通知,那么是否可以使用静默远程通知?

52

在我的设置标签栏中:

  1. 我有一个特定功能的开关,可以根据API响应进行打开或关闭。
  2. 只有管理员才能从网站上打开/关闭它。
  3. 我可以在每次设置标签页时调用/user API来检查用户的当前设置,但是它也有一些缺点,例如如果用户已经在设置中,则不会更新UI,并且每次在设置标签页上调用API并非完美的解决方案。

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

但是,如果用户禁用了推送通知,我仍然会接收到静默推送吗?如何处理这种情况的建议方法?

3个回答

70

简短的回答是,是的

iOS 8中app开发人员的新机会在于,即使用户选择了不接收通知,Apple现在也会提供“静默推送”。此外,“静默推送”现在不仅适用于杂志架应用。每个应用程序都可以利用这种后台刷新内容的能力,创建最新的、响应迅速的体验,当用户打开应用程序时即可获得。

虽然...

用户仍然有能力通过“后台应用程序刷新”控制关闭您的应用程序处理“静默推送”的功能。即使苹果推送通知服务(APNs)将一个标记为“content-available”的推送发送到您的手机,操作系统也不会唤醒您的应用程序来接收它,实际上会使其被忽略。但是,退出“后台应用程序刷新”是一种较少人知道的功能,与通知没有直接关联。您无法在通知设置中访问此首选项-它位于“常规”>“后台应用程序刷新”屏幕下。

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

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


1
你确定这在iOS9上仍然有效吗? - Alexander Vasenin
这适用于iOS8及更高版本。 - GameBegins
1
链接已失效...也许这是正确的链接?https://www.urbanairship.com/blog/watch-list-ios-8-opt-in-changes - Jonny
请注意,如果应用程序具有某种VoIP功能,则可以使用VoIP设施推送静默通知并启动自身,即使“后台应用程序刷新”已禁用。遗憾的是,iOS正在变成Android。更多信息请参见:https://dev59.com/n2Ik5IYBdhLWcg3wrvy4#29231395 - TCB13
但 VoIP 推送似乎对两个选项都免疫,用户无法停止 VoIP 推送... - steven

38

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


“低功耗模式”会影响传递吗? - mpoisot
我不确定,但是我认为如果禁用所有ie您的最后一行。即使您的应用程序在前台,您仍将收到静默通知。 - mfaani
如果用户禁用了通知和后台应用程序刷新,即使我的应用程序在前台,我仍然无法收到通知。 - SAHM
我也是这样(iOS 15) - SoftDesigner

7

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

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

静默通知默认启用。用户无需批准您- 不需要授予应用程序使用它们的权限,您可以在不要求用户许可的情况下开始使用它们。但是,静默通知是后台应用程序刷新背后的机制。在任何时候,您都知道用户可以进入设置并禁用它们。因此,您不能依赖它们始终可用。您不知道用户是否关闭了它们,也不会再收到通知。这也意味着静默通知将尽力交付。这意味着当通知到达用户设备时,系统将做出一些选择。

enter image description here

欲知详情请见这个回答


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接