假设我想在每次发生事件时都显示相同的通知。这就是我目前使用的:
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
创建了一个{{1}},但也没有解决它。
那么 - 每次我想要显示相同的通知(目前对我不起作用)时,是否需要重新创建现有通知,还是有不同的方式?如何确保每次都弹出?
答案 0 :(得分:4)
id
函数中的create
专门用于重用。 ID必须是唯一的。如果您将create
与现有通知的ID一起使用,则它基本上就像更新一样。
如果存在通知,则可能不再显示该通知,但只能在消息中心中显示。在这种情况下,通知IS已更新 - 但未再次显示。
API文档指定您可以将空字符串传递给通知以获取唯一的新ID。如果需要,它将传递给回调。
但是,如果您确实要重复使用该ID(确保通知是唯一的),您可以使用priority trick重新显示该信息。
答案 1 :(得分:3)
如果通知不可用,您可以清除通知,如果您想使用相同的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(){});
}
现在每次调用通知功能显示通知时,它都会在显示新通知之前清除旧通知并显示。
<强>已更新强>
正如@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(){});
});
}