收到远程通知后在后台设置 iOS 应用徽章
Setting iOS app badge while in the background after receiving a remote notification
我看到了一堆关于获取正确的 iOS 应用徽章编号以响应远程通知(例如 this, this, and this)的问题。它们都依赖于意识到 OS 会在您的应用程序执行任何操作之前使用负载中的数字标记应用程序。我明白了,但我的问题有点不同。
假设启用了 "remote-notification" 后台模式(以及为远程通知正确配置)的应用发生了以下一系列事件:
- 服务器发送远程通知。有效载荷说徽章号应该是 7.
- OS 得到这个,用“7”标记应用程序,向用户显示 alert/banner,然后 launches/wakes 我的应用程序进入后台开始处理数据。
- 运行 后不久,应用发现服务器错误,正确的徽章编号应该是 3。
如果用户立即进入应用程序可能没什么大不了的,但如果他们不这样做,我希望徽章是正确的。我可以在后台执行时从 application:didReceiveRemoteNotification:fetchCompletionHandler:
中设置徽章编号吗?
This 文章建议如果您要求 "background fetch" 背景模式并且 OS 满足了您的愿望,您可以更改徽章。如果您有处理通知的背景,它不应该工作的任何原因?
对于后来偶然发现此问题的任何人:我设法完成所有设置以实际尝试此操作。是的,您可以在后台处理远程通知时弄乱应用程序图标徽章。至少就徽章而言,由于通知而不是任何其他后台模式,在后台执行没有什么特别或限制。
我看到了一堆关于获取正确的 iOS 应用徽章编号以响应远程通知(例如 this, this, and this)的问题。它们都依赖于意识到 OS 会在您的应用程序执行任何操作之前使用负载中的数字标记应用程序。我明白了,但我的问题有点不同。
假设启用了 "remote-notification" 后台模式(以及为远程通知正确配置)的应用发生了以下一系列事件:
- 服务器发送远程通知。有效载荷说徽章号应该是 7.
- OS 得到这个,用“7”标记应用程序,向用户显示 alert/banner,然后 launches/wakes 我的应用程序进入后台开始处理数据。
- 运行 后不久,应用发现服务器错误,正确的徽章编号应该是 3。
如果用户立即进入应用程序可能没什么大不了的,但如果他们不这样做,我希望徽章是正确的。我可以在后台执行时从 application:didReceiveRemoteNotification:fetchCompletionHandler:
中设置徽章编号吗?
This 文章建议如果您要求 "background fetch" 背景模式并且 OS 满足了您的愿望,您可以更改徽章。如果您有处理通知的背景,它不应该工作的任何原因?
对于后来偶然发现此问题的任何人:我设法完成所有设置以实际尝试此操作。是的,您可以在后台处理远程通知时弄乱应用程序图标徽章。至少就徽章而言,由于通知而不是任何其他后台模式,在后台执行没有什么特别或限制。