如何在javascript中设置推送通知的显示持续时间?

时间:2016-09-24 11:30:57

标签: javascript push-notification notifications service-worker

以下是侦听推送通知的服务工作者代码:

self.addEventListener('push', function (event) {
var payload = event.data ? event.data.text() : 'no payload';

event.waitUntil(
        self.registration.showNotification('Notify Message', {
            body: payload,
            icon: 'push.png'
        })   );

});

发送通知时,我的屏幕上会显示推送通知。但我想在屏幕上显示推送通知一段时间(例如说90秒或一些动态持续时间,发送通知的用户会输入)。这不适用于Android或ios。这是桌面级别的通知。那么,如何设置推送通知的持续时间?

非常感谢任何形式的帮助。 感谢

3 个答案:

答案 0 :(得分:1)

您可以将requireInteraction参数设置为true,以使通知无法自动关闭。 目前没有持续时间的参数。 你可以在这里查看文档 https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/showNotification

答案 1 :(得分:0)

如果没有看到您如何显示通知,您是否可以实现简单的超时,具体如下:

function clearNotice(notice) {
    // notice.hide();
}

function showNotice(notice) {
    notice.show();
    // clear your notice
    setTimeout(clearNotice(notice), notice.timeout);
}

答案 2 :(得分:0)

没有可用的侦听器或属性来设置持续时间。您可以使用以下代码

关闭通知
Notification.requestPermission(function(result) {
if (result === 'granted') {
  navigator.serviceWorker.ready.then(function(registration) {
    registration.showNotification('Notify Message', {
      body: payload,
      icon: 'push.png'
    }).then(function(event) {
         console.log(event);
          if(event && event.notification) {
            setTimeout(function(){ event.notification.close();}, 3000);
       }
  });
  });
}

});