Состояние насыщенного уведомления 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);
  });
};
Другие вопросы по тегам