我想显示一些由我的 Firefox 附加组件触发的桌面通知,但根据我的测试,您一次只能显示一个。 我不确定是否有任何官方方法可以做到这一点,因为我在通知文档中没有找到任何提及 https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/notifications,但我也会采取一种笨拙的方式。
你说哈克吗?
var timers = require("sdk/timers");
var {notify} = require("sdk/notifications");
var i=0;
var timerId = timers.setInterval(function() {
notify({
title: 'Famous tities for '+(++i)+'00',
text: "That's famous titles, Mr Connery"
});
if (i>4) timers.clearInterval(timerId);
}, 5000);
它们不会堆叠(至少在 OSX 上),您可能希望在将延迟设置为 5 秒之前检查操作系统的默认通知时间是多少,但考虑到通知模块的限制,这是我能想到的最好的。
并不是说您关心,但我只是在我的附加组件中显示不同的通知,具体取决于它是一个还是几个;我觉得它不那么侵入性。
function showNotif(notifs) {//notifs is an array
var len = notifs.length;
var notifOptions;
if(len>1) {
notifOptions = {
title: len + 'notifications',
text: addonName
}
} else {
notifOptions = {
title: notifs[0].title,
text: notifs[0].text
}
}
notify(notifOptions);
然后,您需要向notifOptions
添加一个onClick
,该根据它是针对一个或多个执行不同的操作。