当网站关闭时,推送通知如何在每个浏览器上工作?

Posted

技术标签:

【中文标题】当网站关闭时,推送通知如何在每个浏览器上工作?【英文标题】:How push notification works on every browsers when the website is closed? 【发布时间】:2018-08-05 08:22:09 【问题描述】:

我想在网站打开或关闭时在每个浏览器的通知中显示网站的最新消息。

我可以知道如何实施该流程吗?我需要使用哪个推送 api?流程是什么?

【问题讨论】:

【参考方案1】:

为了向您的网站添加推送通知,您需要了解使用哪种技术/API 在客户端和服务器之间进行通信,即使浏览器已关闭。 Service Worker API 允许这样做,您需要将 Service Worker 添加到您的站点才能使推送通知正常工作。

Service Worker 本质上充当代理服务器,位于 Web 应用程序、浏览器和网络(如果可用)之间。除其他外,它们旨在创建有效的离线体验,拦截网络请求并根据网络是否可用采取适当的行动,并更新驻留在服务器上的资产。他们还将允许访问推送通知和后台同步 API。

来源:MDN - Service Worker API

注意:为了让 Service Worker 正常工作,您的网站需要安全并在 https:// 上运行。对于本地开发,这不是必需的。

服务工作线程运行后,您需要注册用户以接受推送通知。这允许服务器向客户端发送消息。查看Push Notifications: What are they and how do I send them? 以更好地了解此过程。

由于这个话题比较牵强,有很多你需要了解的活动部分,我建议通过教程和文章来熟悉 Service Worker 和 Push Notifications。以下是一些我觉得很有帮助的免费资源。

Service Workers - an IntroductionOffline Web applicationsService Workers: Push NotificationsSet Up a javascript Firebase Cloud Messaging Client App

【讨论】:

以上是关于当网站关闭时,推送通知如何在每个浏览器上工作?的主要内容,如果未能解决你的问题,请参考以下文章

Android 推送通知关闭:它是如何在内部工作的?

取消发送的 Web 推送通知

当应用程序完全关闭时,推送通知点击上的推送 ViewController 将不起作用

推送通知无法正常工作,当应用程序在后台时,Swift

节点 - 浏览器关闭时推送通知

如何为您的网站制作自己的推送通知服务