Gab*_*iel 1 javascript notifications google-chrome google-chrome-extension
对不起,如果我的问题含糊不清,但这是我基本上要做的事情.我的Chrome扩展程序应用程序基本上会查看论坛,每当发布新主题时,都会显示桌面通知.它使用Chrome通知API.因此它看起来像这样:
chrome.notifications.create("id0",选项,回调)
选项是模板,所以我可以做类似的事情:
var options = {
type: "basic",
title: "NEW THREAD!",
message: "I made a new thread blah blah blah",
iconUrl: "url_to_small_icon"
}
Run Code Online (Sandbox Code Playgroud)
因此,当用户单击通知时,它应该打开该线程的链接.
问题是我应该怎么做?
起初,我想我应该只在选项模板下添加url(类似options.message ="www.google.com"),然后一旦调用chrome.notifications.onClicked.addListener,我会从选项中获取该链接,但我不认为这工作,因为我不能抢在通知本身比其他notificationID任何信息(在这种情况下,这将是"ID0").(如果我错了,请告诉我一种方法来做到这一点.谢谢!)
我想到的一种方法是拥有我的chrome扩展应用程序找到的新线程的URL数组(假设已经发布了3个新线程),然后一旦调用chrome.notifications.onClicked.addListener,我会检查通知id(在本例中为id0),然后使用索引(在本例中为0)查找数组的值,然后打开该URL.这确实有效,但我需要在某些时候删除该元素,因为我们看到更多新线程时我的数组会增加.
问题是,如果我在点击通知后立即删除该元素,我移动数组(数组大小为3,但现在它有2),当用户点击另一个通知时,(让我们说通知' id1'),这将打开一个没有正确URL的元素(它应该打开数组(0),而不是数组(1),因为我删除了第一个元素).
注意用户可以按任何顺序单击id0,id1或id2,因此如果显示通知,则无法删除通知中的元素.
我可以尝试做的一件事是在点击所有通知后删除数组,但是我不喜欢这种方法....
我确信有更好的方法所以我希望你们能帮助我吗?
Chrome通知,例如:https://developer.chrome.com/extensions/richNotifications chrome.notifications API:https://developer.chrome.com/apps/notifications
abr*_*ham 10
使用论坛URL作为notificationId,您根本不必使用数组.
例如:
var forumUrl = 'https://example.com/thread/42';
var options = {
type: "basic",
title: "NEW THREAD!",
message: "I made a new thread blah blah blah",
iconUrl: "url_to_small_icon"
}
// create notification using forumUrl as id
chrome.notifications.create(forumUrl, options, function(notificationId){ });
// create a on Click listener for notifications
chrome.notifications.onClicked.addListener(function(notificationId) {
chrome.tabs.create({url: notificationId});
});
Run Code Online (Sandbox Code Playgroud)