问题标签 [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.

0 投票
2 回答
417 浏览

web-push - 使用 Web 推送通知从 GCM 获取自定义消息

我在 Chrome 中使用 Web 推送通知,它们运行良好。但现在我想在我的通知中传递一条自定义消息。我可以让我的 Service Worker 调用我的站点来获取内容,就像在https://simple-push-demo.appspot.com/上所做的那样——如果我希望每个收件人都看到相同的消息,这很好。

有没有办法获得收件人registration_idmessage_idGCM 返回的?如果我能得到其中任何一个并将它们包含在服务的回调中,我就可以自定义响应。

此外,关于我们何时可以在对 GCM 的调用中包含有效负载的任何信息?

0 投票
2 回答
1972 浏览

javascript - 在 Web 推送通知中使用来自推送的数据

我正在尝试使用 Service Worker 为 Web 推送通知设置演示。在服务工作者 sw.js 中,我有以下代码。

这工作正常。我希望收到我通过推送cURL请求发送的数据,例如title等等。有什么方法可以在此waitUntil方法中获取所有数据吗?

非常感谢任何帮助。

0 投票
1 回答
3123 浏览

service-worker - event.waitUntil 在推送事件监听器中调用时抛出错误

我的 service-worker.js 收到来自 GCM 的通知时出现错误

使用上面的代码,我可以完成 gcm chrome web 通知的实现,但是我在控制台中遇到了错误。

0 投票
1 回答
525 浏览

push-notification - Service Worker 无需登录即可从服务器获取数据

我要做的是制作一个安装了 Service Worker 的 Web 应用程序,以使用 Chrome 和 Firefox 上的 Push Notifications API 向用户显示推送通知。

但是我不知道当用户会话过期时是否可以这样做,因为服务器端会话在三个小时后关闭。¿ 服务工作者可能会继续显示基于缓存用户的通知,或者它要求用户正在登录。我知道这对普通最终用户可能不是很好,但这是一个内部系统,所以它如果他们整天都收到通知也没关系。

0 投票
2 回答
773 浏览

push-notification - service-worker 可以停止 GCM api 发送的推送通知吗?

在我当前的架构中,我使用 GCM API 提交推送通知。这会在服务工作者中触发“推送”事件。然后,服务人员将一些数据添加到通知中。

如果服务人员由于某些错误而无法添加数据,我会收到空​​白通知。

服务人员可以避免显示 GCM 发送的通知吗?

0 投票
4 回答
9649 浏览

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?

提前感谢您的帮助

0 投票
1 回答
4453 浏览

javascript - getSubscription 返回一个空订阅

我是服务人员和 GAE 的新手,我可以注册服务人员但无法订阅 PushManager,出现订阅空错误。找到以下代码以供参考。

在上面的代码中,然后将“订阅”值设为“null”,这样,控制就进入了 if 块并简单地返回。

0 投票
1 回答
3560 浏览

google-app-engine - 无法订阅 PushManager

我对 GAE 和推送 API/服务工作者很感兴趣,我正在尝试订阅 pushManager 但是,pushManager getSubscription 方法处理程序返回空引用

然后在能够的代码getSubscription()中将订阅值返回为空,因此,如果块和函数存在,则控制权

如果我想打电话给

然后我收到以下错误

请在https://dtatable-date-filter.googleplex.com/home下方找到工作进度 url

0 投票
2 回答
6674 浏览

service-worker - 为什么此代码无法执行“获取”?

我正在使用服务人员处理推送通知。我正在使用 XHR(Ajax) 方法来获取我的通知,这是 service-worker.js 的代码片段:

这段代码在我第一次运行 curl 时运行良好,但第二次在控制台中出现错误:

这是什么意思?

0 投票
1 回答
95 浏览

javascript - 如何在服务人员中识别正确的持久数据?

我在 chrome 中有一个服务人员,当用户朋友上线时会显示推送通知。我希望使用 IndexedDB 来保存有关用户朋友的数据,例如朋友个人资料页面的姓名和 URL。

我的问题是一个用户有很多朋友,Chrome 不支持额外数据。

我如何知道 service Worker 里面有什么朋友刚刚上线?我知道我可以通过 fetch 找到最新的登录名并以这种方式猜测,但更愿意避免不必要的 ajax 调用和 SQL 查询。