有没有办法在 pwa 中安排离线通知?

Posted

技术标签:

【中文标题】有没有办法在 pwa 中安排离线通知?【英文标题】:Is there a way to schedule offline notifications in a pwa? 【发布时间】:2019-06-03 18:05:38 【问题描述】:

我知道您可以将push notifications 发送给已安装 pwa 的用户。但是,这始终需要发送该通知的服务器以及最终用户设备在线接收和显示它。

我想知道是否有一种方法可以“安排”稍后显示的推送通知,例如 it is possible on android 以便能够实现诸如事件提醒之类的功能,而无需连接互联网。

编辑:从 Chrome 80 开始,通知会触发 are available as an origin trial。

【问题讨论】:

您打算如何首先安排数据? 类似这样的事情:我建立了一个网站,将事件(对于 ex 的会议)显示为 pwa,因此当用户访问该站点时,它会下载所有事件。这些是离线存储的。在此之后,不再需要互联网连接。然后,用户可以选择要获取通知的事件,将它们放在收藏夹列表中,等等。当他选择接收特定事件的通知时,通知会在事件安排前 5 分钟通知,然后在安排时显示。 我的想法是后台同步 API...想知道是否有人设法用它实现了这一点。但我认为这是可能的! 我认为如果在后台运行可能太不可预测了。一种选择是构建一些东西,允许用户向他们的日历推送对他们重要的事件的提醒。使用已在每台设备上构建的***。恕我直言 【参考方案1】:

至少有 3 个 Web API/规范在开发中与某种形式的计划任务相关。但它们都没有投入生产。

定期后台同步 API

解释者:https://github.com/beverloo/periodic-background-sync 错误:https://bugs.chromium.org/p/chromium/issues/detail?id=925297 状态:https://www.chromestatus.com/feature/5689383275462656(开发中)

主要功能:它使网络应用能够在设备有网络连接时定期运行任务


通知触发器(又名计划通知 API/事件警报)

解释者:https://github.com/beverloo/notification-triggers 错误:https://bugs.chromium.org/p/chromium/issues/detail?id=891339 状态:https://www.chromestatus.com/feature/5133150283890688(提议,河豚计划的一部分)

主要功能:这允许在未来的特定时间可靠地显示通知(仅此而已),即使设备处于离线状态


计划任务 API(通用警报)

说明:仅限内部设计文档 错误:https://bugs.chromium.org/p/chromium/issues/detail?id=889077 状态:待定,府谷计划的一部分

主要功能:安排代码在未来的指定时间运行 - 用于 Web 的 cron


所以回答最初的问题:您的选择是 Notification Triggers API。希望这将很快登陆浏览器。

【讨论】:

通知触发器是now available in Chrome (behind a flag)。我已经开始使用它们,到目前为止效果很好。 通知触发器是您想要关注的 API。它目前在旗帜后面可用,但很快将进入新的原产地试验。有关详细信息,请参阅article。

以上是关于有没有办法在 pwa 中安排离线通知?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 webview 应用程序中发送推送通知,其中通知在网站和 PWA 上进行

为没有 Cordova 插件的 Android PWA 发送本地推送通知

用于 PWA 中推送通知的 iOS 原生应用程序包装器

每分钟从服务人员调用一个函数以进行离线 PWA [关闭]

PWA 的推送通知或 Web 推送通知

通过硬编码开发推送服务