Chrome预算管理器扩展:如何实现每次重置总额时重复触发通知?
问题原因
你遇到的问题是因为Chrome通知API中,当使用固定的通知ID(此处为limitNotif)重复调用chrome.notifications.create()时,只有该ID对应的通知不存在时才会弹出新通知。第一次点击后这个ID的通知已存在,后续调用就不会再触发弹出。
解决方案
有两种简单方法可以解决这个问题:
方法1:使用唯一通知ID
每次创建通知时生成独一无二的ID(比如基于当前时间戳),确保每次点击都能生成新通知:
$('#resetTotal').click(function() { chrome.storage.sync.set({'total': 0}, function() { var notifOptions = { type: 'basic', iconUrl: 'icons48.png', title: 'Total Reset!', message: "哦,你已重置总额" }; // 用时间戳生成唯一ID chrome.notifications.create(Date.now().toString(), notifOptions); }); close(); });
方法2:先清除旧通知再创建新的
如果想保留同一个通知ID,可以在创建前先清除该ID的旧通知,确保新通知能正常弹出:
$('#resetTotal').click(function() { chrome.storage.sync.set({'total': 0}, function() { var notifOptions = { type: 'basic', iconUrl: 'icons48.png', title: 'Total Reset!', message: "哦,你已重置总额" }; // 先清除旧通知,再创建新通知 chrome.notifications.clear('limitNotif', function() { chrome.notifications.create('limitNotif', notifOptions); }); }); close(); });
额外提示
请确认你的manifest.json中已经声明了notifications权限,否则通知功能无法正常工作:
{ "permissions": ["storage", "notifications"] }
内容的提问来源于stack exchange,提问作者Kapur
相关产品推荐
相关产品推荐

