当前位置: 首页 > 知识库问答 >
问题:

如何向网页浏览器发送消息推送?

孟晋
2023-03-14

在过去的几个小时里,我一直在阅读推送通知应用编程接口和网络通知应用编程接口。我还发现谷歌

我试图了解我们是否可以使用桌面通知实现对浏览器的推送通知,我相信这就是Web通知API所做的。我在这里看到了一个关于如何为Chrome做到这一点的谷歌文档

现在我还不明白的是:

  1. 我们可以使用GCM/APNS向包括Firefox在内的所有Web浏览器发送推送通知吗

我相信所有这些答案都可以帮助很多有类似困惑的人。

共有3个答案

蒲勇
2023-03-14

您可以通过服务器端事件将数据从服务器推送到浏览器。这本质上是一个单向流,客户端可以从浏览器“订阅”。从这里,您可以创建新的通知对象,并将SSE流到浏览器中:

var source = new EventSource('/events');

source.on('message', message => {
  var notification = new Notification(message.title, {
    body: message.body
  });
}); 

虽然有点老,但Eric Bidelman的这篇文章解释了SSE的基础知识,并提供了一些服务器代码示例。

林威
2023-03-14

Javier介绍了通知和当前的限制。

我的建议:窗口。postMessage当我们等待残疾人浏览器赶上时,elseWorker。postMessage()仍在使用Web Workers。

这些可以是对话框消息显示处理程序的回退选项,用于通知功能测试失败或权限被拒绝时。

通知具有以下功能并被拒绝权限检查:

if (!("Notification" in window) || (Notification.permission === "denied") ) {
    // use (window||Worker).postMessage() fallback ...
}
阙阳夏
2023-03-14

所以我在这里回答我自己的问题。我从过去构建推送通知服务的人那里得到了所有问题的答案。

更新(2018年5月):这是一份全面的、写得非常好的谷歌推送通知文档。

对3年前提出的原始问题的回答:

  1. 我们可以使用GCM/APNS向包括Firefox在内的所有Web浏览器发送推送通知吗

答:截至2018年4月,谷歌已弃用GCM。您现在可以使用Firebase云消息传递(FCM)。这支持所有平台,包括web浏览器。

答:可以,消息推送可以从我们自己的后端发送。所有主要浏览器都支持相同的功能。

检查这个codelab从谷歌更好地了解实现。

一些教程:

  • 在Django中实现推送通知

用各种编程语言实现自己的后端:

  • 点头

进一步阅读:--Firefox网站上的文档可以在这里阅读。-谷歌网站推送的一个很好的概述可以在这里找到解答最常见的困惑和问题的常见问题。

有免费的服务吗?有一些公司在免费、免费和付费模式下提供类似的解决方案。我列举了以下几个例子:

  1. https://onesignal.com/(免费|支持所有平台)

注意:选择免费服务时,请记住阅读TOS。免费服务通常通过收集用户数据来实现各种目的,包括分析。

除此之外,您还需要使用HTTPS发送推送通知。但是,您可以通过letsencrypt免费获得https。组织机构

 类似资料:
  • null null 我正在处理一个从服务器获得通知的页面。我只是创建了一个按钮和一个小div显示通知号码。我想让div在服务器推送到那个div时从服务器得到通知。如何从服务器获取推送通知。我想要从服务器接收通知的客户端代码。我只是使用了另一个系统和节点js是服务器。 谢谢.

  • 我已在中创建了我的应用程序并配置为云消息传递。当我从控制台发送通知时,设备会收到通知,但如果我尝试通过Rest API(使用PostMan)发送。然后通知不会到达设备,但响应显示为成功。 这是我的邮差请求 URI-https://fcm.googleapis.com/fcm/send 标题:内容类型:应用程序/json授权:密钥=MY_SERVER_KEY 正文:{“数据”:{“标题”:“火力基地

  • 以下是我如何从集线器/节点设置开始进行所有设置... java-jar selenium-server-standalone-2.47.1.jar-role hub-maxinstances=10-maxsession=10-port 7777-timeout 29000 java-jar selenium-server-standalone-2.47.1.jar-role webdriver-h

  • 我的代码如下:, 从服务器通知FCM(C#) 我对上述要求的答复 {"multicast_id":5002368547300,"成功": 1,"失败": 0,"canonical_ids": 0,"结果":[{"message_id":"0:14200031 c4rrr5787蛋"}]} 我假设一旦FCM收到新的通知,它将把这些通知推送到各自的Android设备。 但对我来说,它不起作用。

  • 问题内容: 我可以发送消息给父进程吗? 主 子进程 问题答案: 简而言之: 较长的例子,我前段时间写过: