我已经下载了此https://github.com/Minishlink/web-push-php-example。其中有一个发送通知按钮,其中fetch
是一个php文件,该文件使用webpush https://github.com/web-push-libs/web-push-php推送通知。
它工作了一段时间,然后才停止工作。停止工作后,我换了一个拥有但仍然不显示通知的工作副本。
从fetch
到send_push_notification.php
的响应显示了
[v] Message sent successfully for subscription https://fcm.googleapis.com/wp/f6ST-d7Ek3o:APA91bH3ZaT_QYo...
但是我没有看到推送通知。我在service-worker的console.log
事件处理程序中有一个push
,但没有看到推送通知
调用fetch
到php文件(send_push_notification.php
)的js
sendPushButton.addEventListener('click', () =>
navigator.serviceWorker.ready
.then(serviceWorkerRegistration => serviceWorkerRegistration.pushManager.getSubscription())
.then(subscription => {
const contentEncoding = (PushManager.supportedContentEncodings || ['aesgcm'])[0];
const jsonSubscription = subscription.toJSON();
fetch('send_push_notification.php', {
method: 'POST',
body: JSON.stringify(Object.assign(jsonSubscription, { contentEncoding })),
});
})
);
服务工作者文件:
self.addEventListener('push', function (event) {
console.log("PUSHRECEived");
const sendNotification = body => {
return self.registration.showNotification(title, {
body,
});
};
if (event.data) {
const message = event.data.text();
event.waitUntil(sendNotification(message));
}
});
编辑,它在我重新启动PC后可以使用。可能是什么原因。