【问题标题】:Push Notifications not working when Android inactiveAndroid 不活动时推送通知不起作用
【发布时间】:2022-12-05 06:02:29
【问题描述】:

我开发了一个订阅推送通知的 PWA,当收到通知时,Service Worker (SW) 会向每个客户端执行 showNotification 和 postMessage,触发它们更新浏览器中的显示字段。我正在测试的客户端是 Pixel 5a 上的 Android 11,Chrome 99.0.4844.58,并且 PSA 作为应用程序安装。

手机屏幕打开时一切正常(即弹出通知并在客户端更新 PWA 显示字段),并且在屏幕超时并关闭/锁定后它仍然可以工作几分钟,但在某些时候(大约 5 分钟内)通知不再通过。在 SW 推送事件侦听器中,我向客户端浏览器上发送/显示的消息添加了一个时间戳,它表明在手机解锁之前不会触发 SW 推送事件侦听器。

我已在 Chrome 和 PSA 应用程序的应用程序设置中将“设置”>“电池”>“自适应电池关闭”和“电池优化”设置为“未优化”。

这是预期的行为吗?我的 PSA 的目的是用于家庭监控,因此即使手机处于“睡眠”状态,也必须发出通知。

【问题讨论】:

  • 我有完全相同的问题。在过去的几个月中,您碰巧找到了解决方案吗?

标签: push-notification progressive-web-apps


【解决方案1】:

此行为可能是预期的,因为 Android 设备设计为在屏幕关闭时节省电池电量。这可能涉及暂停某些后台进程,包括推送通知,直到设备再次解锁。

您可以尝试一些方法,看看它们是否有助于解决问题:

1.确保您的 PWA 已添加到设备电池设置中的“受保护应用程序”列表中。这将确保应用程序在屏幕关闭时不会暂停。

2.考虑在您的 PWA 中使用“后台同步”,这允许 PWA 定期检查新通知并在收到通知时显示它们,即使设备处于低功耗状态也是如此。

3.如果您的 PWA 安装为“已安装的 Web 应用程序”(相对于从浏览器启动),您可以尝试在应用程序设置中启用“推送通知”。这将允许应用程序即使在设备处于低功耗状态时也能接收推送通知。

总的来说,请务必记住,推送通知在 Android 设备上的行为可能因设备和 Android 版本而异,因此可能需要尝试不同的设置和方法以找到适合您特定用途的解决方案案子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    相关资源
    最近更新 更多