gpt4 book ai didi

javascript - 如果用户不与当前通知交互,则后续的 Chrome 扩展通知 onAlarm 将不再显示

转载 作者:行者123 更新时间:2023-11-28 00:15:08 26 4
gpt4 key购买 nike

我正在编写一个 Chrome 扩展程序,使用 event pages 每 X 分钟提醒用户一些事情。 , alarms ,以及 Chrome extensions notifications API .

问题是,如果用户让通知窗口消失(它仅在屏幕上显示约 10 秒),它将永远不会再次显示。这似乎是 Chrome 中的一个错误,但我想检查一下我是否遗漏了一些东西。

chrome.alarms.create('remindUser', {
delayInMinutes: 1,
periodInMinutes: 5
});

chrome.alarms.onAlarm.addListener(function (alarm) {
chrome.notifications.create(alarm.name, {
type: 'basic',
title: 'Reminder',
message: '...',
buttons: [
{ title: 'Act on it' },
{ title: 'Later' }
]
}, function callback(notificationId) {
// nothing necessary here, but required before Chrome 42
console.log(notificationId, 'notifications ARE called repeatedly, but the window is not displayed');
});
});

manifest.json 中没有什么特别的:

"permissions": ["alarms", "notifications", "storage", "contextMenus"]

如果我点击x按钮关闭通知,下次就会显示。但是,如果我离开计算机并且在通知出现时不执行任何操作,则它将永远不会再次显示。控制台显示 remindUser notification ARE Calledrepeated [...] 消息,且计数不断增加,但该通知不再显示。

如何解决这个问题?我宁愿不使用 Notification API因为它会干扰用户的许可。

最佳答案

发生这种情况的原因是通知始终具有相同的 ID,alarm.name。这会导致后续通知取代先前的通知,如所示 https://developer.chrome.com/extensions/notifications#method-create

chrome.notifications.create 调用中删除 ID 后,所有通知都会显示。但仍然存在一个问题,即它们将隐藏在系统托盘中 Chrome 的响铃图标下,而使用通知 API 生成的通知永远不会消失:

enter image description here

不确定两个通知 API 在如何处理持久化/停靠到系统托盘方面不一致的原因是什么,所以我提交了 bug with Chromium .

关于javascript - 如果用户不与当前通知交互,则后续的 Chrome 扩展通知 onAlarm 将不再显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30519141/

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