问题标签 [push-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
web-push - 使用 Web 推送通知从 GCM 获取自定义消息
我在 Chrome 中使用 Web 推送通知,它们运行良好。但现在我想在我的通知中传递一条自定义消息。我可以让我的 Service Worker 调用我的站点来获取内容,就像在https://simple-push-demo.appspot.com/上所做的那样——如果我希望每个收件人都看到相同的消息,这很好。
有没有办法获得收件人registration_id
或message_id
GCM 返回的?如果我能得到其中任何一个并将它们包含在服务的回调中,我就可以自定义响应。
此外,关于我们何时可以在对 GCM 的调用中包含有效负载的任何信息?
javascript - 在 Web 推送通知中使用来自推送的数据
我正在尝试使用 Service Worker 为 Web 推送通知设置演示。在服务工作者 sw.js 中,我有以下代码。
这工作正常。我希望收到我通过推送cURL
请求发送的数据,例如title
等等。有什么方法可以在此waitUntil
方法中获取所有数据吗?
非常感谢任何帮助。
service-worker - event.waitUntil 在推送事件监听器中调用时抛出错误
我的 service-worker.js 收到来自 GCM 的通知时出现错误
使用上面的代码,我可以完成 gcm chrome web 通知的实现,但是我在控制台中遇到了错误。
push-notification - Service Worker 无需登录即可从服务器获取数据
我要做的是制作一个安装了 Service Worker 的 Web 应用程序,以使用 Chrome 和 Firefox 上的 Push Notifications API 向用户显示推送通知。
但是我不知道当用户会话过期时是否可以这样做,因为服务器端会话在三个小时后关闭。¿ 服务工作者可能会继续显示基于缓存用户的通知,或者它要求用户正在登录。我知道这对普通最终用户可能不是很好,但这是一个内部系统,所以它如果他们整天都收到通知也没关系。
push-notification - service-worker 可以停止 GCM api 发送的推送通知吗?
在我当前的架构中,我使用 GCM API 提交推送通知。这会在服务工作者中触发“推送”事件。然后,服务人员将一些数据添加到通知中。
如果服务人员由于某些错误而无法添加数据,我会收到空白通知。
服务人员可以避免显示 GCM 发送的通知吗?
java - 用 Java 加密 Web 推送 API 的消息
我正在尝试创建一个能够使用 Push API 发送推送消息的服务器:https ://developer.mozilla.org/en-US/docs/Web/API/Push_API
我已经让客户端工作了,但现在我希望能够从 Java 服务器发送带有有效负载的消息。
我看到了 nodejs web-push 示例(https://www.npmjs.com/package/web-push),但我无法将其正确转换为 Java。
我尝试按照示例使用此处找到的 DH 密钥交换:http: //docs.oracle.com/javase/7/docs/technotes/guides/security/crypto/CryptoSpec.html#DH2Ex
在下面的 Sheltond 的帮助下,我能够找出一些应该可以工作但没有工作的代码。
当我将加密消息发布到推送服务时,我得到了预期的 201 状态代码,但推送从未到达 Firefox。如果我删除有效负载和标头并简单地将 POST 请求发送到相同的 URL,则消息成功到达 Firefox,但没有数据。我怀疑这可能与我使用 Cipher.getInstance("AES/GCM/NoPadding"); 加密数据的方式有关。
这是我目前使用的代码:
其中“BASE_64_PUBLIC_KEY_FROM_PUSH_SUBSCRIPTION”是提供的浏览器中推送 API 订阅方法的密钥,“PUSH_ENDPOINT_URL”是浏览器提供的推送端点。
如果我从成功的 nodejs web-push 请求中获取值(密文、base64 bobPubKeyEnc 和 salt)并用 Java 对它们进行硬编码,它就可以工作。如果我将上面的代码与动态值一起使用,它将不起作用。
我确实注意到,在 nodejs 实现中工作的密文总是比上面代码的 Java 密文大 1 个字节。我在这里使用的示例总是产生一个 81 字节的密文,但在 nodejs 中它总是 82 字节。这是否为我们提供了可能出现问题的线索?
如何正确加密有效负载以使其到达 Firefox?
提前感谢您的帮助
javascript - getSubscription 返回一个空订阅
我是服务人员和 GAE 的新手,我可以注册服务人员但无法订阅 PushManager,出现订阅空错误。找到以下代码以供参考。
在上面的代码中,然后将“订阅”值设为“null”,这样,控制就进入了 if 块并简单地返回。
google-app-engine - 无法订阅 PushManager
我对 GAE 和推送 API/服务工作者很感兴趣,我正在尝试订阅 pushManager 但是,pushManager getSubscription 方法处理程序返回空引用
然后在能够的代码getSubscription()
中将订阅值返回为空,因此,如果块和函数存在,则控制权
如果我想打电话给
然后我收到以下错误
请在https://dtatable-date-filter.googleplex.com/home下方找到工作进度 url
service-worker - 为什么此代码无法执行“获取”?
我正在使用服务人员处理推送通知。我正在使用 XHR(Ajax) 方法来获取我的通知,这是 service-worker.js 的代码片段:
这段代码在我第一次运行 curl 时运行良好,但第二次在控制台中出现错误:
这是什么意思?
javascript - 如何在服务人员中识别正确的持久数据?
我在 chrome 中有一个服务人员,当用户朋友上线时会显示推送通知。我希望使用 IndexedDB 来保存有关用户朋友的数据,例如朋友个人资料页面的姓名和 URL。
我的问题是一个用户有很多朋友,Chrome 不支持额外数据。
我如何知道 service Worker 里面有什么朋友刚刚上线?我知道我可以通过 fetch 找到最新的登录名并以这种方式猜测,但更愿意避免不必要的 ajax 调用和 SQL 查询。