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

How to set display duration for Push Notification in javascript?

本文关键字:通知 显示 时间 设置 javascript      更新时间:2023-09-26

下面是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。这是桌面级通知。那么,如何设置推送通知的持续时间呢?

任何帮助都是非常感谢的。由于

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

如果没有看到你是如何显示你的通知,你可以实现一个简单的超时,沿着一行:

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

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

关闭通知
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);
       }
  });
  });
}

});