Состояние насыщенного уведомления Chrome Progress не будет двигаться вверх
Я пытался сделать Chrome Progress Rich Notification, но строка состояния не двигалась.
Я думаю, что этот код будет работать. Строка состояния будет увеличиваться на 1% каждые 40 мс. Уведомление пропадает через 4 секунды (бывает тоже 100%). Я думаю, что-то не так с моим setInterval
var notifyStatus = function(title, message) {
var k = 0;
chrome.notifications.create('', {
'type': 'progress',
'iconUrl': 'images/icon128.png',
'title': title,
'message': message || '',
'progress': setInterval(function() {
if (k>100) {k;}
else {k++;}
},40)
}, function(nid) {
// Automatically close the notification in 4 seconds.
window.setTimeout(function() {
chrome.notifications.clear(nid);
}, 4000);
});
};
1 ответ
Решение
В настоящее время вы назначаете progress
к любому значению setInterval возвращается только один раз.
Вам необходимо обновлять уведомление каждые 40 мс, используя новое значение прогресса, используя chrome.notifications.update:
var notifyStatus = function(title, message, timeout) {
chrome.notifications.create({
type: 'progress',
iconUrl: 'images/icon128.png',
title: title,
message: message || '',
progress: 0
}, function(id) {
// Automatically close the notification in 4 seconds by default
var progress = 0;
var interval = setInterval(function() {
if (++progress <= 100) {
chrome.notifications.update(id, {progress: progress}, function(updated) {
if (!updated) {
// the notification was closed
clearInterval(interval);
}
});
} else {
chrome.notifications.clear(id);
clearInterval(interval);
}
}, (timeout || 4000) / 100);
});
};