我想显示从我的firefox附加组件触发的一些桌面通知,但似乎您只能在我的测试中一次显示一个。 我不确定是否有任何官方方法可以做到这一点,因为我在通知文档中没有找到任何提及 https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/notifications,但我也会采取一种hacky方式。
答案 0 :(得分:3)
你说过hacky吗?
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);
然后你需要添加一个onClick
到notifOptions
,根据它是针对一个还是多个来做一些不同的事情。