开发 Web 通知时,Chrome 通知 API 和推送通知 API 有什么区别。每一种应该何时使用以及它们有何不同?
通知API 通知 API 允许网页或应用程序发送在系统级别的页面外部显示的通知;这使得 Web 应用程序可以向用户发送信息,即使应用程序处于空闲状态或在后台也是如此。本文着眼于在您自己的应用程序中使用此 API 的基础知识。
https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API
推送API Push API 使 Web 应用程序能够接收从服务器推送给它们的消息,无论 Web 应用程序是否位于用户代理的前台,甚至当前是否已加载。这使开发人员可以向选择加入的用户提供异步通知和更新,从而更好地参与及时的新内容。 https://developer.mozilla.org/en/docs/Web/API/Push_API
查看这些链接以获取更多信息: https://www.w3.org/TR/push-api/ https://www.w3.org/TR/notifications/
这可能会令人困惑,但如果我做对了,我自己寻找一个明确的答案,那就是这样的:
通知 API = 用于在用户打开您的网站/应用程序时发送通知,即使在空闲或在后台时也是如此。
Push API = 用于在用户当前未打开您的网站/应用程序时发送通知。
注意:对于 macOS 上的 Safari,Apple 有自己的推送通知 API: https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/NotificationProgrammingGuideForWebsites/Introduction/Introduction.html
iOS 上的 Safari 仍然不支持这两个 API 中的任何一个(2021 年 2 月)。
浏览器触发系统通知。
远程服务器触发系统通知
(通常通过浏览器传递
service workers
)。
在这两种情况下,应用程序都可以在后台运行。
*致谢: @yota, MDN 推送 API, MDN 通知 API