推送API将推送服务定义为
一种允许应用服务器向webapp发送推送消息的系统。
对服务的订阅是通过在没有任何参数的情况下调用serviceWorkerRegistration .pushManager.subscribe()创建的。
如何配置此推送服务的URL?我原以为.subscribe()会为该服务接受一个URL参数。
Push API的姊妹规范使用HTTP Push的通用事件传递说:
push服务:此资源用于创建push消息订阅(参见第3节)。push服务的URL被配置为用户代理。
但是它没有指定如何进行这种配置。
发布于 2015-07-14 20:28:50
这句来自你引用的第二份文件的话回答了以下问题:
此文档无意描述如何发现推送服务。如果有必要的话,对push服务的发现将留待以后的工作来完成。用户代理将被配置为push服务的URL。
目前,浏览器正在提供一些特定的推送服务的内置知识,比如Chrome中的GCM。在在开放Web上推送通知关于HTMLRocks的文章中提到了这一点:
Chrome使用GCM来处理推送信息的发送和传递。其他浏览器可以免费使用任何推送服务..。
但是,看看将来是否会开放浏览器会很有趣,因此,正如您所建议的那样,我们可以在subscribe的参数中指定我们自己选择的服务。
发布于 2015-12-02 21:03:00
首先使用navigator.serviceWorker.register('/some-service-worker.js')注册服务工作者,然后当您调用serviceWorkerRegistration .pushManager.subscribe()时,此seriveceWorkerRegistration引用您刚刚注册的服务工作人员。
最好用一个例子来说明这一点:
navigator.serviceWorker.register('/some-service-worker.js').then(function() {
navigator.serviceWorker.ready.then(function(serviceWorkerRegistration) {
serviceWorkerRegistration.pushManager.subscribe({userVisibleOnly: true}).then(function() {/*...*/});
});
});https://stackoverflow.com/questions/31413727
复制相似问题