Разработка расширения Chrome: автоматическое закрытие окна уведомлений

Сделав что-то, я запускаю этот код:

var notification = webkitNotifications.createNotification(
   'icon.png',  // icon url - can be relative
  'Done!',  // notification title
  'Just updated your list!'  // notification body text
   );
  notification.show();

что, конечно же, выводит уведомление на экран пользователей.

В любом случае, есть ли время для этого уведомления, чтобы оно автоматически закрывалось через X секунд?

Спасибо! р


person Ryan    schedule 20.04.2011    source источник
comment
Подробное описание см. в этом ответе: stackoverflow.com/a/51572172/3089950   -  person IRSHAD    schedule 28.07.2018


Ответы (4)


Вы можете использовать notification.cancel();

person qiufangzhou    schedule 13.05.2011
comment
Мне нравится notification.cancel();, потому что его можно вызвать из той же функции, которая создает уведомление. - person smfoote; 28.06.2011
comment
Спасибо! Работает именно так, как я хотел! - person Ryan; 03.07.2011
comment
Возможно, для API есть обновление, теперь вам следует использовать уведомление.close(). - person William; 28.08.2015

var notification = webkitNotifications.createNotification('images/icon-48x48.png',"This is       Title","Biswarup Adhikari Notification");
notification.show();
setTimeout(function(){
notification.cancel();
},2000);

Уведомление Chrome закроется автоматически через 2000 миллисекунд или 2 секунды.

person biswarupadhikari    schedule 19.08.2012

Вы сможете вызвать window.close() из HTML-страницы уведомления. Это закроет уведомление.

Чтобы закрыть в определенное время, вызов чего-то вроде setTimeout( function () { window.close(); }, timeInMicroseconds); должен быть эффективным.

person Mike West    schedule 20.04.2011
comment
Спасибо! Это в точку! - person Ryan; 21.04.2011

function show(title, message, icon) {
try {
    icon = icon || 'src/img/icons/icon48.png';
    var self = this;
    var isClosed = false;
    var notificationId = "posting_" + Math.random();

    chrome.notifications.create(notificationId, {
        type: "basic",
        title: title + "!",
        message: message,
        iconUrl: icon
    }, function (nId) {
    });

    setTimeout(function () {
        if (!isClosed)
            chrome.notifications.clear(notificationId, function (wasCleared) {
            });
    }, 3000);
} catch (e) {
    alert(e.message);
}

}

Хорошо, когда я создал уведомление, запомните идентификатор notificationId и установите время ожидания, чтобы очистить этот идентификатор.

person atchen1988    schedule 10.12.2015
comment
Пожалуйста, также объясните, что вы изменили и почему - person blckbird; 10.12.2015