Chrome扩展通知并非总是创建的-重复使用
Chrome Extension Notifications Not Always Created - Reuse?
假设我想在每次发生事件时显示相同的通知。这就是我目前使用的:
chrome.notifications.create(id, {
type:"basic",
title:"Title",
message:"My message",
iconUrl: "icon.png",
}, notificationResult);
但有时通知不会出现。
这是id
吗?我需要重复使用已经创建的通知吗?我可以不创建具有相同id
的新通知吗?
我试着做var notification = chrome.notifications.create(id .... )
和notification.show()
,以防我已经用相同的id
创建了一个,但这也没有解决问题
那么,每次我想显示相同的通知时,我是否需要重新创建一个现有的通知(目前对我不起作用),或者有不同的方法吗?如何确保它每次都弹出?
create
函数中的id
专门用于重用。ID必须是唯一的。如果将create
与现有通知的ID一起使用,它的行为基本上类似于更新。
如果存在通知,则该通知可能不再显示,而只能在消息中心中显示。在这种情况下,会更新通知,但不会再次显示。
API文档指定,您可以将空字符串传递给通知,以获得唯一的新id。如果需要,它将传递给回调。
但如果您确实想重用ID(确保通知是唯一的),您可以使用优先级技巧使其再次显示。
如果不使用通知,并且您想使用相同的id,则可以清除通知。
例如:
function Notify(){
var my_notif_id="some_id";
//This will clear your previous notifcation with the same ID
chrome.notifications.clear(my_notif_id,function(){});
chrome.notifications.create(my_notif_id,options,function(){});
}
现在,每次调用notification函数来显示通知时,它都会在显示新通知之前清除旧通知并显示出来。
更新
正如@Xan所建议的,在clear()的回调函数中包含create()方法是很好的下面是一个完整的例子:
function Notify(id, options){
//This will clear your previous notifcation with the same ID
chrome.notifications.clear(id, function() {
//inside callback function
chrome.notifications.create(id, options, function(){});
});
}
相关文章:
- 重置使用javascript创建的新tr的val
- 试图创建一个24小时计时器来重置自己
- 如何在ASP.NET中创建重定向到登录页
- 动态(重新)创建iframe内容不会重置Chrome中的JS对象
- 附加'沙箱'属性设置为动态创建的iframe以停止重定向
- 使用来自不同页面的cookie创建URL,并使用JS重定向
- 在 PHP 中创建模式警报而不是页面重定向验证
- 使用javascript创建Form元素,并在不重定向/刷新的情况下提交
- 如何创建在特定时间重置的倒计时
- 如何创建在页面重新加载时不重置的JSP变量
- 将使用 history.pushState() 创建的 URL 重定向到基本 URL
- 基于 Html 表单中的值创建链接,并将其重定向到该链接
- 使用java和html基于当前用户创建重定向链接
- 如何为 CKFinder 创建重命名后或删除后事件挂钩
- 创建一个超链接(或按钮),用于执行 python 脚本,然后在脚本完成时重定向
- HTML 正在创建提交重定向
- 如何创建不会在每个简历上重置的 RXJS 可暂停数据流
- 在jQuery中创建的URL既重定向到又打开一个新选项卡
- 如何创建重定向到URL的HTML“取消”按钮
- 如何在Jquery中创建重定向页面