问题标签 [web-notifications]

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 回答
2625 浏览

javascript - close chrome notification on click

I'm trying to create web notifications via chrome and I'm receiving the notification and it's working fine the problem is when I'm clicking on the notification it is not disappearing please help me in closing notification when clicked/opened

I currently have

0 投票
1 回答
2161 浏览

typescript - 使用超时创建 Web 通知

如何创建设置超时的 TypeScript Web 通知?

我创建了以下代码,但无法在默认超时之前关闭通知:

作为测试,我想在 TypeScript 中创建一个持续五秒钟的通知,覆盖浏览器的默认行为。我看不到 TypeScript 类型文件中列出的任何其他对我有帮助的选项:

ES2017 通知选项

尽管我使用 Firefox 作为我的主要浏览器,但我正在使用 Chrome 开发和测试这个软件。因此,任何在 Chrome 中正常工作但不包含黑客或浏览器特定代码的解决方案都可以。

0 投票
0 回答
808 浏览

javascript - FCM 有两个用于同一个 Javascript 客户端的活动令牌

我正在使用 Firebase Javascript SDK 将网络推送通知添加到 React JS 应用程序。通过一系列事件,我们最终得到了两个 FCM 令牌,它们似乎来自同一个 Web 客户端(相同的机器、浏览器和站点域)。在客户端上接收到发送到任一令牌的 FCM 消息。我原以为其中一个令牌会失效,但似乎并非如此。当这种情况发生时,是否可以识别和删除无关令牌?

注册我们的 Service Worker 并将 FCM 令牌发送到我们的后端服务的代码如下所示:

一些(可能)相关点:

  • Web 客户端在一段时间(几周)内拥有一个活跃的 FCM 令牌。新令牌是在某个时候生成的,但现在messaging.getToken()正在返回以前的令牌。
  • 大约在生成第二个令牌时,我们(错误地)更改了我们传递给的服务工作者脚本的路径navigator.serviceWorker.register()。这似乎导致了两个注册的服务工作人员(如 Chrome 开发人员工具中所见),但取消注册路径不正确的工作人员没有任何效果。
  • 大约在同一时间,我们从我们使用的 Firebase 库从 3.9.0 更新到 4.6.2
  • 通过 Chrome 开发者工具,我可以看到有两个 IndexedDB,其中一个有一个带有无关令牌的 fcm_token_object_Store,这与下messaging.getToken()图中控制台输出中显示的返回的令牌不同:

在此处输入图像描述

然而碰巧这两个 FCM 代币被创建了,我主要关心的是如何摆脱其中一个。是否有某种方法可以获取客户端实例的所有活动 FCM 令牌,以便我们可以调用messaging.deleteToken()无关的令牌?只是靠侥幸,我才能够在我可以调试的机器上识别出有问题的两个令牌,所以如果这种情况发生在真正的最终用户身上,我不确定我们将如何纠正这种情况。

0 投票
1 回答
936 浏览

node.js - 如何创建从服务器到所有通知授予用户的网络推送通知?

我正在使用 Angular CLI 最新版本和 NodeJS,想要存档 Web 推送通知,我们得到的文档很少但给出了错误,我可以知道任何支持 Angular 和 nodejs 的 Web 推送通知的文档。

要求是向所有在浏览器关闭时授予通知的用户发送推送通知。

示例文档:

  1. https://ciphertrick.com/2017/03/14/browser-push-notifications-in-angular-applications/(得到错误pushNotificationModule未导出)
  2. https://www.npmjs.com/package/angular2-notifications(CLI不清楚)
0 投票
1 回答
24 浏览

google-chrome - 所有网络通知已完全停止。我怎样才能解决这个问题?

我最近将 Notify.js 添加到我的添加中,以向我的用户显示 Web 通知。它正在工作,但突然之间我完全没有收到任何通知。不是来自任何网站。

chrome 的通知设置仍然相同。就是收不到任何通知。我傻眼了。到底是怎么回事?什么都没有改变,但我的电脑无法收到任何通知。

0 投票
0 回答
928 浏览

javascript - Firefox 中的 Fcm Web 通知问题

我正在尝试为使用 firebase 的网站启用推送通知。我能够让它在 Google Chrome 和 Opera 浏览器中完美运行。但是我在 mozilla firefox 中收到以下错误。

无法获得通知权限。Object { code: "messaging/failed-serviceworker-regi...", message: "Messaging: We are unable to register service worker", name: "FirebaseError", browserErrorMessage: "ServiceWorker script at https://www ..",堆栈:“”,还有 1 个……}

我正在使用 firefox 54 进行测试,还尝试了最新的 firefox 57,它显示了相同的错误。

我让弹出窗口允许,在页面加载时阻止通知。当我单击允许时,出现上述错误。

下面是我正在使用的代码:

请忽略配置值

我还得到了日志'通知权限被授予,在下面我得到上述错误

任何帮助将不胜感激,谢谢。

0 投票
1 回答
2691 浏览

swift - 如何在 WKWebView 中捕获通知?

我正在使用 Swift 4 开发 macOS 桌面应用程序。
它有一个 WKWebView ,它加载一个发送通知的网页。
默认情况下不显示任何通知,也没有权限请求。

我需要一种显示通知并拦截它们的方法,以便我可以显示一个计数器。

知道如何实现这一目标吗?

0 投票
1 回答
1352 浏览

service-worker - 在网站中运行后台进程

一旦用户访问网站,我就有兴趣运行后台进程。我的问题非常广泛,但例如我想每分钟左右轮询一次 JSON API,并在 JSON API 的响应发生变化时向用户发送网络通知。服务人员可以做到这一点吗?我怎样才能做到这一点?

如果这是可能的,那么我是否可以在服务工作者中运行 WebAssembly 文件,以便即使网站未打开,应用程序也可以运行?

或者我可以运行服务人员来获取网站的最新版本并将其缓存,以便网站在下次访问时立即加载?

0 投票
1 回答
75 浏览

javascript - 在多个浏览器/设备上同步 Web 通知

如何在多个浏览器/设备上同步 Web 通知?

假设我的服务器能够知道用户是否在我的网络应用程序上访问了他们帐户中的通知(以及他们从哪个设备访问它。)

那么是否可以在所有其他订阅设备(针对该用户)上将该通知标记为“已读”?是否有 Javascript API 将(已收到并列出的)通知标记为已读?或者其他方式来同步通知?

阅读 Stack Overflow 上的相关线程......我提到了 PubNub。显然,它管理多个设备上的通知。我不想使用第三方服务......我只需要知道这样做的机制。

0 投票
1 回答
478 浏览

python - Web 通知推送从 Chrome 上的 python 抛出 400

我正在使用 pywebpush 1.4.0 库从 Django 后端推送 Web 通知。我使用的密钥是从https://web-push-codelab.glitch.me/获得的。订阅似乎工作正常。此外,我在 Firefox 上对此进行了测试,并且在那里运行良好。

我在推送 Chrome 时收到以下错误服务器端:

奇怪的是,我的后端控制着 3 个域,即使 Chrome 在一个域上运行,推送也可以正常工作,而在其他域上则无法正常工作。我排除了以下可能的问题:

  • 不正确的私钥和公钥对,因为它在 Firefox 上运行良好
  • 过时的 pywebpush 库在 Chrome 上的一个域上运行良好
  • 很少有答案(Chrome Web Notification Push Unauthorized Registration 异常)指出要更新 pywebpush 安装的 py-vapid 版本,但它的版本已经是 py-vapid==1.3.0

我看到的唯一可能性是 Chrome 是否不允许来自同一后端的不同域的推送通知。有没有人知道这样的限制或可以在这里帮助我提供任何其他指示?

注意:我对所有三个域使用不同的密钥。

这是我用来推送的代码:

subscription_info 是订阅用户时收到的 json,vapid_private_key 是对应的私钥。