我对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": []
}
答案 0 :(得分:1)
事实证明,它是基于铬的浏览器中的bug。 似乎一旦禁用扩展的通知,它就永远不会再显示通知,因为无法重新启用它,并且您将不得不重新安装浏览器,尽管我的尝试也没有结果。
我不得不尝试另一台安装了全新Chrome浏览器的计算机,并且通知开始在该计算机上显示。
关于Edge,事实证明它也是bug。 :-/
答案 1 :(得分:0)
如果您使用的是Mac和Chrome 59+,则可能是因为Chrome禁用了MacOS本机通知。这是两种可能的解决方案:
打开Chrome>转到chrome://flags
>搜索Enable native notifications
>更改为Disabled
>重新启动Chrome
转到“ MacOS系统偏好设置”>“通知”>如下图所示打开横幅/警报通知(可能以前是“关闭”)