gpt4 book ai didi

google-chrome - Google Chrome 浏览器静默推送通知

转载 作者:行者123 更新时间:2023-12-02 05:42:56 25 4
gpt4 key购买 nike

我一直在阅读有关 Chrome 的 Web Push API 实现的文档 here ,我注意到 API 说“您 promise 在收到推送时显示通知”,并且在限制条件下表示“您必须在收到推送消息时显示通知”。

在本地主机上实现示例后,我使用 cURL 成功发送推送通知。我很好奇,所以我注释掉了实际调用 showNotification 函数的行,并放入 console.log 中,结果发现我实际上可以发送、接收并完全忽略推送通知。我什至尝试使用 if 语句来控制是否根据我从主页控制的全局 bool 值显示它们,并且这有效。所以我想知道是否有人知道他们所说的“需要显示通知”和“静默推送通知”不可用是什么意思?

这不仅仅是为了它,我可能需要合理地控制是否在我的网络应用程序中显示这些通知,所以如果这实际上是可能的,那就太好了。如果您好奇,请使用下面的代码。

self.addEventListener('push', function(event) {
var title = 'New Message';
var body = 'You have received a new message!';
var icon = '/img/favicon.png';
var tag = 'well-notification';
console.log("DID RECEIVE NOTIFICATION")

if(settingsShowNotification) {
event.waitUntil(
self.registration.showNotification(title, {
body: body,
icon: icon,
tag: tag
})
);
}
});

编辑:在 Chrome 47 上,如果相关的话。

更新:经过进一步的实验,我发现了一个明显的问题,即一旦用户导航离开然后重新导航到同一页面,我就无法更新原始全局变量。但是,我可以使用 serviceworker 本身的变量并使用描述的 API here 向 serviceworker 发送消息来规避此问题。切换 showNotifications bool 值。

最佳答案

您确实必须显示通知,如果您不显示通知,您会从浏览器收到强制通知,显示“此网站已在后台更新”。但显示恐怖信息的要求稍微放宽了:

截至 16 年 1 月,似乎最多会检查最后 10 条通知,以确定每条通知是否显示通知。如果最近十个通知中的一个通知显示通知,则视为意外,浏览器不会显示可怕的“此网站已在后台更新”。您必须错过过去十个通知中的两个通知,可怕的消息才会出现。

注意:如果事件浏览器选项卡地址栏中的 URL 与您页面的来源匹配,并且浏览器最小化,则您不需要显示通知。如果您在运行测试时位于页面本身,这可能就是您的测试成功的原因。

跟踪实现的 Chromium 错误:https://code.google.com/p/chromium/issues/detail?id=437277

相关源代码行:https://code.google.com/p/chromium/codesearch#chromium/src/chrome/browser/push_messaging/push_messaging_notification_manager.cc&l=249

关于google-chrome - Google Chrome 浏览器静默推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33092065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com