【问题标题】:Notifications not working in web extension (Firefox) [duplicate]通知在网络扩展程序(Firefox)中不起作用[重复]
【发布时间】:2017-06-08 14:28:30
【问题描述】:

我使用的是开发者版本的 Firefox(版本 54.0a2,但也尝试了版本 51 的普通 Firefox),我想在我的网络扩展中包含通知。

browser["notifications"] 不存在。

由于它在我的扩展程序中不起作用,并且我认为可能存在冲突,我创建了这个非常基本的网络扩展程序。

manifest.json:

{
  "manifest_version": 2,
  "name": "Extension",
  "version": "1.0",

  "description": "...",

  "icons": {
    "48": "icons/icon-48.png"
  },

  "content_scripts": [
    {
      "matches": [
        "http://*/*",
        "https://*/*"
      ],
      "js": ["test.js"]
    }
  ],
  "permissions": ["notifications", "storage"]
}

test.js(顺便说一句,存储工作得很好。)

if (browser["notifications"]) {
    console.log('Notifications exist!');

    browser.notifications.create({
      "type": "basic",
      "iconUrl": browser.extension.getURL("icons/icon-48.png"),
      "title": "test",
      "message": "test"
    });
  }
  else {
    //it always executes this part :/
    console.log('notifications do not exist');
    console.log(browser);
  }

调试插件也不会显示任何错误。

【问题讨论】:

标签: javascript firefox notifications firefox-addon-webextensions


【解决方案1】:

许多扩展专用的 api 只能在后台脚本中运行。如果您需要从内容脚本运行它,通常的技术是从内容脚本向后台脚本发送消息,在后台脚本中处理消息并从那里运行您想要的命令。

在您的情况下,Notification Api 末尾有几个示例,其中之一是 notify-link-clicks-i18n,您可以在其中查看他们如何通过消息传递从后台脚本创建通知。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-18
    • 2014-07-13
    • 1970-01-01
    • 2016-03-04
    • 2017-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多