问题标签 [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 投票
1 回答
64 浏览

notifications - 使用 pushPad Express 为用户订阅自定义标签

我正在使用 pushpad Express 为 web 应用程序创建自定义通知中心,订阅在 Uids 上运行良好,但我无法使其与标签过滤一起使用。我检查了文档,但找不到正确的参数名称。我尝试了 "tags[]=demo", tags=["demo"],tags=demo, 很多东西,但它不起作用。

0 投票
3 回答
1960 浏览

ruby - 在Ruby中将公钥导出到base64

我有一个 PEM 格式的公钥,它是通过以下方式生成的:

我必须阅读 PEM 字符串并获得base64 url​​ 编码的字符串。我怎样才能在 Ruby 中做到这一点?

顺便说一句,我必须为 WebPush 协议执行此操作,该协议指出:

您必须将您的 VAPID 公钥作为 base64 url​​ 编码的字符串添加到 Crypto-Key 标头,并在其前面加上 p256ecdsa=。

0 投票
1 回答
867 浏览

javascript - 推送 WebAPI + IndexedDB + ServiceWorker

正如许多文章在网上解释的那样,我已经使用 Service Worker 在我的 Web 应用程序中实现了 Push WebAPI。现在我需要在 IndexedDB 中存储一些数据,以便在关闭 Web 应用程序时(chrome tab 关闭,后台执行中的 service worker)使它们可用。特别是我想存储一个简单的 url,从中检索通知数据(来自服务器)。

这是我的代码:

不幸的是,当我收到一个新的推送事件时它不起作用,显示此异常:

未捕获的 DOMException:无法在“ExtendableEvent”上执行“waitUntil”:事件处理程序已经完成。在 IDBRequest.request.onsuccess ( https://192.168.0.102/pushServiceWorker.js:99:23 )

我该如何解决这个问题?

提前致谢

0 投票
2 回答
44603 浏览

c# - Asp Net Core Web 推送通知

主要目标是添加网站功能以发送 Web 通知以弹出系统通知,以使用 Html5 Push API 和服务工作者提醒用户。不使用 SignalR,它只能在站点打开时运行客户端脚本。如果站点关闭,也应该能够发送通知,如此处所述-是可能的。

是关于 Push API 的好文章并提供了很好的示例 但它使用 NodeJS 作为服务器和web-push组件来向通知服务发送请求。

找不到任何 .NET 示例。我考虑了两种解决方法。

首先,是根据关于服务器的 Push API 文章注释从头开始编写所有内容:

当您发送没有数据的推送消息时,您只需使用 HTTP POST 请求将其发送到端点 URL。但是,当推送消息包含数据时,需要对其进行加密,这是一个相当复杂的过程。

二、是使用AspNetCore.NodeServices(关于它的文章)来执行node.js脚本文件

还有更多的解决方案吗?也许存在为此准备好的解决方案?

课题研究后

3个案例:

  1. HTTP + 旧浏览器 + IE 所有版本 - 使用 SignalR + 使用 html+js 渲染通知
  2. 支持通知 API 的 HTTP + 现代浏览器(Chrome、Firefox、Safary、Opera?、Edge)。- 使用 SignalR 并使用 js 触发本机浏览器通知new Notification('Message')
  3. HTTPS + Chrome (Mobile) 支持 Push API 以使用 service-workers 触发关闭站点的本地通知。移动版 Chrome 只能使用 service-worker 创建通知。

变得很复杂。怎么了?

可能的解决方案:

对于 1 和 2 案例,找到了这个存储库。认为这是一个很好的前端解决方案,具有良好的后备支持。对于3例仍然不知道该怎么办。

当前解决方案。添加: 2017-11-22

  • 不支持离线客户端通知
  • 没有移动支持
  • 对于 Chrome v62+,将所有项目移动到https -链接
  • 使用 SignalR (0.2.0) 向在线客户端发送推送
  • 使用pnotify v3+ 显示原生 desctop 或 html 通知。
  • 等待pnotify v4.0.0(作者承诺 chrome 移动支持。问题
  • 等待带有 SignalR 1.0 的 .NET Core 2.1 将整个项目重写为它。
0 投票
1 回答
710 浏览

webrtc - 从渐进式/可安装的网络应用程序解锁和唤醒以构建呼叫应用程序

我目前正在研究渐进式 Web 应用程序的新功能,它们非常棒,可以构建感觉非常原生的 Web 应用程序。特别是,我目前正在考虑构建一个纯基于 Web 的、可安装的呼叫应用程序。大多数类似的功能已经存在:

尽管如此,为了在手机上构建一个严肃的通话应用程序,有必要能够在来电时解锁/唤醒手机屏幕。不幸的是,我找不到任何关于这样做的可能性。即使没有目前仍被视为“实验性”的功能。有谁知道目前是否可以仅使用网络技术来做到这一点?如果没有,如果在不久的将来浏览器技术计划允许类似的事情发生?

在我看来,这应该是可能的(至少在未来),因为这将使开发人员能够构建具有更多功能并且更接近原生应用程序的渐进式 Web 应用程序。

0 投票
2 回答
3744 浏览

push-notification - Web Push API - 在后端存储订阅

我在本 Google 教程的帮助下实现了 Web Push API: https ://developers.google.com/web/fundamentals/getting-started/codelabs/push-notifications/

本教程包含一个方法,可用于将订阅发送到后端服务器:

我想将订阅与用户标识符一起存储,以便我可以选择要发送通知的用户。现在我想知道,我必须将订阅的哪一部分存储在数据库中。我的订阅对象如下所示:

我是否应该只创建一个包含整个 JSON 订阅的列 (Id|User_Id|Subscription) 的“订阅”表?什么是最佳实践?JSON 的有效性是无限的吗?如果取消订阅,我可以使用哪个字段来识别订阅?

0 投票
1 回答
197 浏览

javascript - 如果我实施网络推送通知,我是否需要在我的个人网站上制定隐私政策?

我正在创建一个个人网站并学习实现一个服务工作者,该服务工作者利用推送 API 来更新我自己和其他人看到的任何内容,因为我在部署时更新了网站。我发现 pushSubscription 为您提供了一个功能 URL,我需要将其存储在某个地方以便将消息推送到该 URL。

这就是我的问题所在。如果我要将这些功能 URL 存储在数据库中,是否需要隐私政策?如果是这样,我能否以某种方式只允许我的网站存储我的功能 URL 而不是存储其他 URL?

0 投票
1 回答
313 浏览

javascript - node.js websocket,转换JSON数据

使用 node.js 我运行以下代码:

并通过 push-API JSON-Data 恢复:

现在我想处理数据,是否可以将其存储到 mysql 中或仅使用 JSON-Array 序列声明一个变量?

0 投票
1 回答
90 浏览

web-push - 自定义订阅按钮

我想自定义订阅按钮并将其添加到我的网站,我该怎么做?

目前用户可以使用此链接订阅推送通知: https ://pushpad.xyz/p/3898

0 投票
1 回答
1369 浏览

progressive-web-apps - 我可以使用网络推送通知来更新页面而不显示通知吗?

我想知道是否可以使用网络推送通知来更新网页而不显示通知以供用户交互。本质上,我想在服务器上发生事件后刷新数据。

如果这是可能的,是否仍然需要从用户那里获得发送这些推送更新的权限?