问题标签 [web-push]

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 投票
0 回答
49 浏览

google-chrome - 无法深入了解推送通知发生的情况

我想知道作品中是否有任何东西可以提供有关从服务人员推送通知发生了什么的信息?

GCM 将它放在游戏控制台中,其中给出了推送的确切旅程。我们正在获取大多数活跃订阅者的消息 ID,但是当我们在分析中没有获得显示它到达设备的印象时。

是否可以构建一个系统来解释推送通知发生了什么。如果有任何缓存清除或任何东西带走了该设备的设备令牌,也可以传递信息吗?这将非常有帮助,因为这样我们就可以了解导致设备令牌消失的原因。

现在我们的统计数据是 400K 活跃订阅者,我们获得有效的消息 ID,并且即使推送到期为 10 天,他们也只有 50K 印象。这是一个非常可悲的比例。我们还在我们的整个网站上添加了 https 并设置了一种机制,如果他们再次访问,我们可以取回他们的开发令牌,我们发现即使他们之前订阅了我们也没有他们的令牌。

0 投票
2 回答
5405 浏览

node.js - web-push 未知问题,WebPushError“收到意外响应代码”400

在使用 GCM 和 chrome开发web-push期间。我最近遇到了这个问题(几个小时前一切仍然正常)

我不确定这是否是由于 GCM 的一些变化或云的停机时间而发生的......任何信息将不胜感激。

我的代码

痕迹:

0 投票
1 回答
264 浏览

firefox - 删除的 Firefox 令牌仍然可以通过 Mozilla Push Server 推送

我目前正在 Firefox 桌面浏览器上发送网络通知。不幸的是,删除的令牌仍然可以通过 Mozilla Push Server 推送

要删除由ServiceWorker生成的令牌(即订阅端点),我只需清除缓存历史记录。然后,我向已删除的端点发送一个通知:Mozilla 返回一个201 Created,告诉我们通知已为用户创建并准备好发送。

但是,如果我使用 Chrome 浏览器重复相同的步骤,Google Cloud Messaging 会告诉我们令牌未注册(参见GCM 文档>“未注册的设备”)。

但是,我可以在Mozilla 文档中清楚地看到这种情况有错误代码:cferrno 103 - Expired URL endpointerrno106 - Invalid subscription.

另外,我必须说,如果我阻止以前授予的本机通知权限,Mozilla 会返回一个errno106 - Invalid Subscription错误。问题是令牌何时被删除。

0 投票
1 回答
175 浏览

google-cloud-messaging - 基于 Chrome 的 GCM 推送通知原生弹出窗口检测

我需要在 chrome 原生弹出窗口出现时更改站点上的文本消息,以允许从站点获取基于 chrome 的 GCM 推送通知。见截图。在此处输入图像描述

据我所知,本地弹出窗口仅在启用网站通知时第一次出现。但是如果假设有人第一次允许然后从站点禁用然后再次尝试启用它不会出现。

所以我只需要添加一个签入代码就知道只有在弹出窗口出现时才有效。在这行代码上订阅 chrome GCM 通知时会出现此原生弹出窗口:

提前致谢。

0 投票
2 回答
1994 浏览

android - Service Worker clients.openWindow 从清单打开 start_url 而不是请求的 URL

我有一个接收推送通知的服务人员,它在桌面版 Chrome 中运行良好,但在 Android 版 Chrome 中运行良好。

有时它按预期工作,但有时它开始打开 ​​manifest.json 的 start_url 值而不是 notificationURL 变量的值。

通知 URL 如下所示: https ://www.example.com/abc/123/?source=notification

清单 start_url 值如下所示: https ://www.example.com/?source=manifest

示例代码:

因此,由于某些原因,如果通知 URL 以“ https://www.example.com ”开头,则上面的代码将始终打开https://www.example.com/?source=manifest

这与我已将网站添加到主屏幕这一事实有关吗?

这是预期的行为吗?

注意:它会打开清单 start_url,但不是在独立模式下。

0 投票
7 回答
11735 浏览

google-chrome - Google Chrome:DOMException:注册失败 - 清单为空或缺失

我正在尝试在我的网站上实现推送通知(使用 Pushpad)。因此,我创建了一个包含以下内容的“manifest.json” :

当然,我创建了一个有效的 GCM 帐户并有一个发件人 ID

我将manifest.json放入我的根目录,并将这一行添加到我的index.php中:

使用Firefox一切正常,我可以发送和接收推送通知(所以我认为 manifest-include 工作正常),但Chrome不能工作......

控制台显示以下错误:

我在谷歌上搜索了很长时间,并尝试了我找到的所有内容,但没有任何效果。

我尝试了什么:

  1. 使用“编辑器”创建manifest.json并将其保存为类型所有类型(因此没有隐藏的.txt文件)以及UTF-8编码。
  2. 重新启动 Chrome
  3. 清除了 Chrome 的缓存、历史记录等。

我真的希望有人能帮助我。

0 投票
2 回答
1798 浏览

javascript - 谷歌浏览器推送通知

我正在为我的网站用户实施 chrome 推送通知。我能够成功地做到这一点。我有两个问题?

1) 每当我阻止来自浏览器设置的通知时,如何获取以前的订阅 ID。我必须从我的后端服务器中删除订阅 ID

2) 每当我重新加载网站 pushManager.subscribe 方法时,每次我向服务器发送订阅 id 时都会运行,因此 API 每次都使用相同的订阅 id

推.js

服务工作者.js

0 投票
1 回答
370 浏览

google-chrome - PushPad:站点刷新后删除订阅

我已经集成了 PushPad 并设法让它为静态推送工作。现在我想将它与一些 PHP 和 Javascript-Functions 结合起来使其动态化。这是我的代码:

乍一看,一切正常。如果我第一次访问该站点,所有警报都会弹出,直到“UID”警报。然后我被 Chrome 要求接受推送通知。我单击允许,然后弹出“已订阅”警报。

如果我现在刷新网站,一切都会重复到“订阅”警报(但我不再被要求允许 Chrome 推送通知)。我原以为应该显示“已订阅”警报,因为我以前订阅过,但没有。

如果有人可以提供帮助将不胜感激:-)

0 投票
3 回答
2612 浏览

push-notification - 如何为推送通知添加分析

我正在开发渐进式网络应用程序,我想为推送通知实施分析。

如何为推送通知添加分析,以便我能够跟踪和记录有多少人点击了通知,以及有多少人在没有点击的情况下关闭了该通知。

0 投票
2 回答
552 浏览

google-chrome - PushPad:Chrome 不显示推送通知

这个问题来自以下问题(见评论部分):

PushPad:站点刷新后删除订阅

我在使用 PushPad 时遇到问题。我创建了一个项目,实现了代码等等。我的问题是 Chrome不显示我发送的推送通知(桌面版和移动版)。使用 Firefox 一切正常。我在发送通知的那一秒内就会收到通知。

一段时间后,我在 Chrome 开发者工具(Ressources->Service Worker)中找到了“模拟推送事件”功能。单击此按钮时,Chrome 会显示我之前发送的推送通知。

那么推送通知似乎是由PushPad发送并被接收,但不会自动显示,就好像它们被Service Worker排队一样?但是我的网站用户不必进入开发者控制台并单击该按钮来接收通知(它应该就像在 Firefox 中一样)。

我已经尝试使用我的“项目 ID”“项目编号”(来自我的 Google 项目)作为我的GCM 发件人 ID。两者都会导致上述问题。而且我还生成了一个新的 API-Key 并在我的 Pushpad-Project 中对其进行了更改,但没有任何改变。

当我使用Pushpad DEMO从官方 Pushpad-Homepage 发送演示通知时,我还注意到同样的问题。它也是排队的,只有在我按下开发者控制台中的按钮时才会显示。

我已经在 2 台不同的 PC 和一台 Nexus 4 上用 Chrome 尝试了我的所有测试,但总是同样的问题。

你有什么建议吗?也许(只是猜测)Pushpad 提供的 Service Worker 存在一些问题(因为它在他们的 HP 上是一样的)?