以下是侦听推送通知的服务工作者代码:
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。这是桌面级别的通知。那么,如何设置推送通知的持续时间?
非常感谢任何形式的帮助。 感谢
答案 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);
}
});
});
}
});