使用 Web 通知 API 推送

Posted

技术标签:

【中文标题】使用 Web 通知 API 推送【英文标题】:Push with Web Notifications API 【发布时间】:2017-04-19 02:11:13 【问题描述】:

我刚刚开始研究 Web Notifications API。当我加载页面时,这个 JS 会立即显示一个通知:

if("Notification" in window) 
    if(Notification.permission == "granted") 
        var notification = new Notification("Notification Title", "body":"Message Body", "icon":"my-icon.png");
     else 
        Notification.requestPermission(function (permission) 
            if (permission === "granted") 
                var notification = new Notification("Notification Title", "body":"Message Body", "icon":"my-icon.png");
            
        );
    
 else 
    alert("Your browser doesn't support notifications");

但我更感兴趣的是当其他人访问同一页面时向我显示通知。例如,每当有人(不是我)访问customer.php 时,通知应该显示给我,而不是他们。

这可以通过 Web Notification API 完成吗?如果可以,我将如何处理?

【问题讨论】:

你需要一个网络服务器吗? 您需要一些服务器代码。此外,即使您当时不在线,您也需要使用 Push API(或 Pushpad 之类的服务)来传递通知。首先以某种方式对您的用户进行身份验证(身份验证或 cookie),然后为他们订阅推送通知(请求许可),然后当有人访问该页面时,从您的服务器触发通知。 【参考方案1】:
    通知注册是针对特定角色(希望接收通知的人)。 因此,您的 Notification.permission 代码将针对应用程序的特定用户执行。 向网站添加代码以将消息推送到您的服务器,可能有多种方式之一,在站点加载时调用 javascript 函数并以异步方式将消息发布到服务器。 服务器端,你有一个 api 接收消息发布通知给注册用户(根据上述第 1 点)

【讨论】:

以上是关于使用 Web 通知 API 推送的主要内容,如果未能解决你的问题,请参考以下文章

在 Xamarin 上推送通知的 Web API - 流程是啥?

为啥没有通过 Firebase FCM 从 Web API 定向到特定 iOS 设备的推送通知?

标头未设置 node.js api 推送通知

我如何从 laravel api 推送通知以响应本机应用程序?

为啥在 Web 推送库上使用推送通知服务?

开源IM项目OpenIM发布消息推送api,支持应用与IM互通深度融合