创建 Chrome 扩展以通过键盘快捷键关闭通知
Creating Chrome Extension to Dismiss Notifications via Keyboard Shortcut
我是 Chrome 扩展开发的新手。我目前正在寻找一个 Chrome 扩展来关闭通知。我希望通过快捷键激活一次扩展。
在查看下面的代码之前,我想让大家知道 alert
确实出现了...但是 Chrome 扩展页面显示错误:
"Error in event handler for commands.onCommand: TypeError: Cannot read property 'getAll' of undefined"
上线:
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);
});
}
});
错误:
您需要将 notifications
权限添加到您的清单
{
"name": "ClearAll",
"permissions": ["notifications"],
.......
}
您可能已经明白了这一点,但是对于以后偶然发现这个问题的人来说:不可能编写一个扩展来消除 [=23] 上的 所有 通知=] 因为任何扩展都不可能访问用户的 browser-wide 通知; manifest.json
中的 notifications
权限允许您创建和清除由 您的 扩展程序创建的通知。事实上,如果允许任何扩展程序这样做,那将是一种隐私侵犯!
来自 https://developer.chrome.com/apps/notifications#method-getAll,
Retrieves all the notifications of this app or extension (emphasis mine.)
我是 Chrome 扩展开发的新手。我目前正在寻找一个 Chrome 扩展来关闭通知。我希望通过快捷键激活一次扩展。
在查看下面的代码之前,我想让大家知道 alert
确实出现了...但是 Chrome 扩展页面显示错误:
"Error in event handler for commands.onCommand: TypeError: Cannot read property 'getAll' of undefined"
上线:
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);
});
}
});
错误:
您需要将 notifications
权限添加到您的清单
{
"name": "ClearAll",
"permissions": ["notifications"],
.......
}
您可能已经明白了这一点,但是对于以后偶然发现这个问题的人来说:不可能编写一个扩展来消除 [=23] 上的 所有 通知=] 因为任何扩展都不可能访问用户的 browser-wide 通知; manifest.json
中的 notifications
权限允许您创建和清除由 您的 扩展程序创建的通知。事实上,如果允许任何扩展程序这样做,那将是一种隐私侵犯!
来自 https://developer.chrome.com/apps/notifications#method-getAll,
Retrieves all the notifications of this app or extension (emphasis mine.)