在我的代码中,我希望每次都能使用不同的链接调用函数notify,并且创建的特定通知会在单击时打开包含该页面的新选项卡 注意:我对文档非常困惑,请不要只是链接我,我真的想要一个例子的解释。感谢
这是我到目前为止所做的:
function notify(title, msg, link, callback) {
//no idea what to do with the link here
var options = {
title: title,
message: msg,
type: "basic",
iconUrl: "Icon.png"
};
return chrome.notifications.create("", options, callback);
}
并调用该函数:
notify("title", "message", "http://www.example.com", function(notification) { });
将显示
标题 消息
点击后,会打开一个新标签到http://www.example.com
然后,我会再次打电话给它
notify("title", "message", "http://www.google.com", function(notification) { });
单击
时会打开http://www.google.com的新标签页谢谢,如果你能提供帮助!
答案 0 :(得分:1)
没有直接支持将onclick
处理程序附加到通知。相反,如果您点击通知的正文,则会生成一般的chrome.notification.onClicked
事件,并提供通知的ID。
因此,您将维护自己的ID与URL的匹配。
var urls = {};
chrome.notifications.onClicked.addListener(notifyClick);
chrome.notifications.onClosed.addListener(notifyClose);
function notify(title, msg, link, callback) {
var options = {
title: title,
message: msg,
type: "basic",
iconUrl: "Icon.png",
isClickable: true // New in Chrome 32, alters the appearance?
};
return chrome.notifications.create("", options, function(id) {
// New ID will be generated
urls[id] = link;
});
}
function notifyClick(id) {
// Look up the URL:
chrome.tabs.create({url: urls[id]});
// Optionally, close the notification:
// chrome.notifications.clear(id, function(){});
}
function notifyClose(id, byUser) {
// Clean up the matching
delete urls[id];
}
请注意:关于以编程方式关闭通知有一个警告。如果通知已从消息中心关闭it will not immediately disappear。