我制作了桌面通知,每1分钟显示一次通知。 10秒后,关闭自己。
我去吃午饭,然后电脑进入睡眠状态。当我回来时,我唤醒了我的电脑然后开始通知很多通知。
我该如何处理这个问题?我想如果电脑睡不着它就不应该显示通知。我该如何控制它?
Background.js
function show() {
var notification = webkitNotifications.createHTMLNotification(
'notification.html'
);
notification.show();
}
// Conditionally initialize the options.
if (!localStorage.isInitialized) {
localStorage.isActivated = true; // The display activation.
localStorage.frequency = 1; // The display frequency, in minutes.
localStorage.isInitialized = true; // The option initialization.
}
if (window.webkitNotifications) {
// While activated, show notifications at the display frequency.
if (JSON.parse(localStorage.isActivated)) { show(); }
var interval = 0; // The display interval, in minutes.
setInterval(function() {
interval++;
chrome.idle.queryState(15, state);
if(localStorage.frequency <= interval && state=="active")
{ show();
interval = 0;
}
}, 60000);
}
答案 0 :(得分:4)
使用Chrome.idle
API检测浏览器是否处于活动状态并触发通知。我猜您可以使用可配置的时间间隔来查询状态并暂停通知。
代码中的状态是回调函数,而不是字符串!,所以更改此代码
setInterval(function () {
chrome.idle.queryState(15, state);
if (localStorage.frequency <= interval && state == "active") {
show();
interval = 0;
}
}, 60000);
到
setInterval(function () {
chrome.idle.queryState(15, function (state) {
if (localStorage.frequency <= interval && state == "active") {
show();
interval = 0;
}
});
}, 60000);