【问题标题】:Firefox - displaying web notifications from extension/addonFirefox - 显示来自扩展/插件的网络通知
【发布时间】:2014-11-03 18:17:38
【问题描述】:

我正在构建 Firefox 插件(使用插件 SDK),我想向用户显示桌面通知。 有Notification object,但它似乎不适用于插件代码(背景页面)。没有错误等,但没有显示权限对话框,因此无法显示通知。我当然尝试过添加权限/桌面通知,但没有效果。

编辑:粘贴我尝试过的示例代码(代码位于socket.io事件的回调函数内。事件被正确接收,但没有显示通知,或请求权限。

        Notification.requestPermission( function(status) {
        console.log(status); // notifications will only be displayed if "granted"
        var n = new Notification("title", {body: "notification body"}); // this also shows the notification
    });

我还发现alerts service 这个有效。但是警报消失得很快(对我来说太快了)-编辑:这就是它的工作方式-所以猜想不需要代码示例,因为我看不到任何使它们持续更长时间的选项。

有什么方法可以在 Firefox 上显示类似 chrome 的通知? (chrome.notifications.create) 或者至少使用插件中的网络通知对象?

【问题讨论】:

  • 你已经尝试了什么?在问题中包含一些代码,我们会更容易为您提供帮助。
  • 我已经像@ArtOfCode 建议的那样编辑了我的原始问题,但我认为代码示例在这里没有真正的意义,因为它在网页上的文档中非常默认,不适用于插件。不知道我是否可以对此更清楚。
  • 你可能想看看Firefox addon docs,特别是Display a Popup
  • 谢谢。看到了,但点击任何其他地方后面板消失了。因此,如果插件在用户主动浏览时向用户显示这样的弹出窗口,他甚至可能看不到它(我不希望它对用户造成干扰——在浏览器中心显示面板可能不是一个好主意)。所以看起来没有其他解决方案?显示很快消失的警报或显示如果用户单击其他地方可能会消失的弹出窗口?

标签: javascript notifications firefox-addon firefox-addon-sdk


【解决方案1】:

如果您使用的是附加 SDK,则您正在查看错误的文档。这是notification docs

您可以这样创建通知:

var notifications = require("sdk/notifications");
notifications.notify({
  title: "Jabberwocky",
  text: "'Twas brillig, and the slithy toves",
  data: "did gyre and gimble in the wabe",
  onClick: function (data) {
    console.log(data);
  }
});

您查看的所有文档都应该是developer.mozilla.org/en-US/Add-ons/SDK 的子集。

【讨论】:

  • 还有一个问题——也许你会知道。调用多个通知的正确方法是什么?逐行调用 notification.notify() 会导致不显示任何通知。而且我只收到错误“###!!! [Child][DispatchAsyncMessage] Error: Route error: message sent to unknown actor ID”,谷歌搜索没有给出任何解释。不确定这是否可以防止多条通知?
  • @gemini 在谷歌搜索之上,您应该搜索我已经提供的 MDN 链接和 StackOverflow。在这里查看the second search result。此外,如果您有新问题,最好开始一个新问题,而不是在 cmets 中跟进。
  • 感谢您的澄清和指出搜索结果。看起来这里的本地搜索比 Google 提供了更好的结果。
猜你喜欢
  • 2014-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多