我是Chrome扩展程序开发的新手。我目前正在寻找一个Chrome扩展程序来关闭通知。我希望通过快捷键一次激活该扩展。
在查看下面的代码之前,我想知道alert
确实出现了……但是Chrome扩展程序页面显示了错误:
“ commands.onCommand的事件处理程序中发生错误:TypeError:无法读取未定义的属性'getAll'”
在线:
chrome.notifications.getAll((items) => {
chrome.notifications
对象是未定义的,因此Chrome似乎认为没有当前的通知正在显示...这很奇怪,因为确实存在,如图所示。
请问有人对此情况有所帮助吗?
manifest.json:
{
"name": "ClearAll",
"version": "1.0",
"description": "Clear notifications!",
"background": {
"scripts": ["background.js"],
"persistent": false
},
"commands": {
"clear": {
"suggested_key":{
"default": "Alt+Shift+S"
},
"description": "Executes clear"
}
},
"manifest_version": 2
}
background.js:
chrome.commands.onCommand.addListener(function(command) {
if (command == 'clear') {
alert("testing");
chrome.notifications.getAll((items) => {
if (items)
for (let key in items)
chrome.notifications.clear(key);
});
}
});
错误:
答案 0 :(得分:0)
您需要向清单中添加notifications
权限
{
"name": "ClearAll",
"permissions": ["notifications"],
.......
}
答案 1 :(得分:0)
您可能已经知道了这一点,但是对于以后偶然发现此问题的任何人:不可能编写一个扩展程序以在Chrome上消除 all 通知,因为任何用于访问用户浏览器范围的通知的扩展;通过notifications
中的manifest.json
权限,您可以创建和清除由您的扩展名创建的通知。的确,如果允许任何扩展名这样做将违反隐私!
从https://developer.chrome.com/apps/notifications#method-getAll,
检索此应用或扩展程序(重点是我)的所有通知。