Chrome Web扩展程序未显示通知,即使它在Firefox中运行正常

时间:2019-03-05 10:48:59

标签: google-chrome google-chrome-extension notifications microsoft-edge

我对chrome.notifications.create(id,options)函数有一个简单的调用,并且已经检查了十次参数。

id参数是一个字符串。 options参数是一个像这样的对象:

{type:"basic",message:"message",title:"message",iconUrl:chrome.extension.getURL("icons/icon.png")}

它仅在Firefox中有效。 Edge Opera和Chrome都无法显示该通知。边缘崩溃了!

我已经检查了所有内容。没有错误,并且iconUrl是正确的。

我还检查了清单json的名称字段。没关系。 (Microsoft Edge notification in an extension

示例相关的简化代码

此简化版本与完整版本存在相同的问题。

 //For hooking up event handlers
        try {
            chrome.runtime.onStartup.addListener(doHandshake);
        }catch(ex) {
            console.error("onStartup function in Edge is not supported.");
       }
    chrome.webRequest.onBeforeRequest.addListener(onBeforeRequestCallback, { types:['main_frame'],urls:['*://*/*']}, ['blocking']);

    function onBeforeRequestCallback(requestDetails) {
        showMessage();
        return {};
    }

    function showMessage() {
        console.log("about to show notification...");
        var notificationOptions ={type:"basic",message:"msg",title:"title",iconUrl:chrome.extension.getURL("icons/icon.png")};          
        chrome.notifications.create("",notificationOptions);    
    }

manifest.json

{
  "manifest_version": 2,
  "author" : "whatever Ltd.",
  "name": "21charsName",
  "version": "1.0",
  "description": "whatever",
  "permissions": [
    "*://*/*",
    "tabs",
    "webRequest",
    "webRequestBlocking",
    "storage",
    "notifications"
  ],
  "browser_action": {
    "default_icon": "icons/icon.png",
    "default_title": "extension"
  },

  "background": {
    "scripts": [      
      "background.js"
    ],
    "persistent": true
  },
  "web_accessible_resources": []
}

2 个答案:

答案 0 :(得分:1)

事实证明,它是基于铬的浏览器中的bug。 似乎一旦禁用扩展的通知,它就永远不会再显示通知,因为无法重新启用它,并且您将不得不重新安装浏览器,尽管我的尝试也没有结果。

我不得不尝试另一台安装了全新Chrome浏览器的计算机,并且通知开始在该计算机上显示。

关于Edge,事实证明它也是bug。 :-/

答案 1 :(得分:0)

如果您使用的是Mac和Chrome 59+,则可能是因为Chrome禁用了MacOS本机通知。这是两种可能的解决方案:

解决方案1 ​​

打开Chrome>转到chrome://flags>搜索Enable native notifications>更改为Disabled>重新启动Chrome

解决方案2

转到“ MacOS系统偏好设置”>“通知”>如下图所示打开横幅/警报通知(可能以前是“关闭”)

Notifications Setting Screenshot


Reference 1

Reference 2