2

我想展示一些从我的 Firefox 插件触发的桌面通知,但从我的测试来看,您似乎一次只能显示一个。我不确定是否有任何官方方法可以做到这一点,因为我没有在通知文档中找到任何提及 https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/notifications,但我也会采取一种骇人听闻的方式。

4

1 回答 1

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它是一个还是多个做不同的事情。

于 2014-01-22T22:02:20.050 回答