chrome.notifications.onClosed 在 google chrome 扩展的 background.js 中不起作用
Posted
技术标签:
【中文标题】chrome.notifications.onClosed 在 google chrome 扩展的 background.js 中不起作用【英文标题】:chrome.notifications.onClosed not working in background.js for the google chrome extension 【发布时间】:2019-06-21 23:46:27 【问题描述】:我正在构建一个非常基本的谷歌浏览器扩展程序,它必须监听所有收到的通知来自谷歌浏览器!
我的扩展的文件结构;
manifest.json background.js 图标 main.pngmanifest.json
"manifest_version": 2,
"name": "My Extension",
"version": "1.0.0",
"browser_action":
"default_icon":
"16": "icons/main.png",
"24": "icons/main.png",
"32": "icons/main.png"
,
"background":
"scripts": ["background.js"],
"persistent": false
,
"permissions": [
"notifications"
]
background.js
console.log('Lady Gaga');
chrome.browserAction.onClicked.addListener(function()
console.log('Clicked');
);
chrome.notifications.onClosed.addListener(function (s,b)
console.log('notification Closed');
);
chrome.notifications.onClicked.addListener(function ()
console.log('notification Clicked');
);
chrome.notifications.onButtonClicked.addListener(function ()
console.log('notification Button Clicked');
);
所以如果我点击我的扩展按钮
chrome.browserAction.onClicked
已触发,当我检查后台 LOGS 时,我可以看到“Lady Gaga”和“Clicked”日志被触发了!
接下来,我正在尝试查看通知侦听器的日志。为了触发通知的听众,我们找到了一个网站,其中包含可以轻松发送通知的基本 html 按钮。
https://web-push-book.gauntface.com/demos/notification-examples/
我正在使用这个网站自己发送通知来测试后台事件侦听器,这些侦听器被定义为通知事件的侦听器。
但是没有一个通知事件没有触发,正常工作。我看不到“通知按钮已点击”或“通知已关闭”之类的任何日志
这种情况有什么问题?
【问题讨论】:
【参考方案1】:manifest.json
"manifest_version" : 2,
"name" : "demo1",
"description" : "Demo",
"version" : "0.1",
"background" :
"scripts" : ["background.js"],
"persistent" : false
,
"permissions" : [
"notifications"
]
background.js
var description = "dvcvv";
var news = "cvcvcvcvcvcvcvcvcv";
var pattern =
OPTION : "list",
;
var a1 =
title : "xxxxxxxxxxxxxxxxxx",
message : "dsdsdsdX"
;
var a2 =
title : "yyyyyyyyyyyy",
message : "sdsdsdsdY"
;
var butt1 =
title : "Button 1 "
;
var butt2 =
title : "Button 2"
;
var notifopt =
type : pattern.OPTION,
iconUrl : "icon.png",
title : description,
message : news,
buttons : [butt1,butt2],
items : [a1,a2]
;
chrome.notifications.create(notifopt,function()
console.log('Lady Gaga');
);
chrome.notifications.onClicked.addListener(function()
console.log('notification Clicked');
);
chrome.notifications.onClosed.addListener(function()
console.log('notification Closed');
);
chrome.notifications.onButtonClicked.addListener(function()
console.log('notification Button Clicked');
);
google chrome --> 更多工具 --> 扩展 --> 加载解压 --> 刷新扩展 --> 显示通知 --> 点击 button1 --> 点击 查看视图页面,在后台 - -> 你会看到 console.log
【讨论】:
我怎样才能收听扩展中未触发的任何其他通知? 你可以使用navigator.serviceWorker
***.com/questions/39418545/…
例如,producthunt 每天两次向我发送桌面通知。这个当前代码可以处理这个外部桌面通知吗?
我想这就是你想要的:developer.chrome.com/extensions/desktop_notifications
我在 chrome.extension 文档中没有找到更多以上是关于chrome.notifications.onClosed 在 google chrome 扩展的 background.js 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章