如果用户在 IOS 中禁用了后台应用刷新,为啥不发送推送通知?

Posted

技术标签:

【中文标题】如果用户在 IOS 中禁用了后台应用刷新,为啥不发送推送通知?【英文标题】:Why push notifications are not delivered if user has disabled background app refresh in IOS?如果用户在 IOS 中禁用了后台应用刷新,为什么不发送推送通知? 【发布时间】:2020-03-19 17:56:45 【问题描述】:

在post 之后不久,我设法说服我们的团队使用推送通知而不是轮询!我们将使用 AWS Pinpoint,它为 ios 使用 APN。到目前为止,一切都很棒,但我们缺少一个关键功能:

即使用户已禁用通知并且已禁用后台应用,我们也需要确保在应用在前台时发送推送通知> 刷新我们的应用程序。

我知道如果应用程序在后台并且用户禁用了后台应用程序刷新,推送通知会,但为什么它会影响前台?否则,轮询仍然是必不可少的,因为如果用户在前台,它确实有效...

也许我错了(我希望如此),但我已经测试了各种案例,但无法解决这个特殊案例。

【问题讨论】:

您是否在前台显示通知时遇到问题,或者根本没有收到通知? 根本没有收到通知。 【参考方案1】:

如果用户禁用了通知,您将不会收到通知。

另外,请注意,推送通知不能保证快速交付。如果您的连接很奇怪,它们可能会慢慢来。此外,如果您从蜂窝移动到 wifi,反之亦然,通知可能会发生奇怪的事情。

您可以尝试一件事 - 如果您的应用禁用了通知,请不要让它们运行。如果您的应用需要正常运行,请在 applicationDidBecomeActive 的应用委托中检查启用的通知

【讨论】:

以上是关于如果用户在 IOS 中禁用了后台应用刷新,为啥不发送推送通知?的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 7 中检测后台应用刷新的用户设置

为啥我在 iOS 13 中的应用程序在被用户终止时通过静默推送在后台唤醒

如果应用程序在前台,iOS8 禁用推送通知

iOS 在后台注册通知

在 iOS 运行时禁用 crashlytics/Fabric

iOS 7 后台定位更新精度高、电池使用率低且禁用暂停