我正在尝试创建一个chromeapp,当按下热键时,会清除所有通知。我已经设置了热键并正在工作,但似乎无法让chrome.notifications.clear API工作,我想这是因为我无法/不知道如何获取所有通知ID。有没有办法在不知道其ID的情况下清除通知,或者只是清除所有通知?谢谢!
chrome.notifications.clear
gjmwrych1#
根据文档,您需要获取notificationId以删除通知。chrome.notifications.clear(string notificationId, function callback)只清除指定的通知。notification.create方法返回要清除的通知的id。所以如果你不知道系统中的notificationId,你可以通过调用chrome.notifications.getAll(function callback)来获取它。它会检索系统中的所有通知和notificationId。
chrome.notifications.clear(string notificationId, function callback)
notification.create
chrome.notifications.getAll(function callback)
des4xlb02#
如果有人仍然需要代码示例:
chrome.notifications.getAll((items) => { if ( items ) { for (let key in items) { chrome.notifications.clear(key); } } });
8e2ybdfx3#
如果你说的“所有通知”是指在你的Chrome扩展之外创建的通知,比如来自不同网站的通知,那么Chrome API只会给予你访问你的扩展内创建的通知,因此chrome.notifications.getAll不会真正让你获得所有通知,除了你创建的通知。
chrome.notifications.getAll
3条答案
按热度按时间gjmwrych1#
根据文档,您需要获取notificationId以删除通知。
chrome.notifications.clear(string notificationId, function callback)
只清除指定的通知。notification.create
方法返回要清除的通知的id。所以如果你不知道系统中的notificationId,你可以通过调用
chrome.notifications.getAll(function callback)
来获取它。它会检索系统中的所有通知和notificationId。des4xlb02#
如果有人仍然需要代码示例:
8e2ybdfx3#
如果你说的“所有通知”是指在你的Chrome扩展之外创建的通知,比如来自不同网站的通知,那么Chrome API只会给予你访问你的扩展内创建的通知,因此
chrome.notifications.getAll
不会真正让你获得所有通知,除了你创建的通知。