Как мне вызвать мой service-worker.js одним нажатием кнопки?Теперь я могу отправить информацию об уведомлении, которая находится в моем service-worker.js, нажав кнопку на devtools.
Все, что мне нужно, - это просто нажать кнопку, я не знаю, как инициировать код нажатием кнопки.Я делал это, но я не знаю, что поместить в мой файл send_notification, чтобы вызвать уведомление.Справка.
это мой main.js
function sendSubscriptionToBackEnd(subscription) {
console.log(subscription);
var subscription_parsed = JSON.parse(subscription)
// return fetch(subscription_parsed.endpoint, {
return fetch("send_notification.php", {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
// body: JSON.stringify(subscription)
body: subscription
})
.then(function (response) {
console.log(response);
if (!response.ok) {
throw new Error('Bad Status code from server');
}
// return response.json();
})
.then(function (responseData) {
console.log(responseData);
// if (!(responseData.data && responseData.data.success)) {
// throw new Error('Bad response from server.');
// }
});
}
notifyButton.addEventListener('click', function () {
if (isSubscribed) {
alert("message send");
sendSubscriptionToBackEnd(subscriptionObjectToo);
} else {
alert("message not send");
}
});
Я передаю значение serviceworker.pushManager.subscribe, которое вот так:
{"endpoint":"https://fcm.googleapis.com/fcm/send/ezu5Ndp8ggo:APA91bFytOrF-bPdwGc4uFObqai6V7N4WFFaprwc3-CQMZdyLDzpNriFSJGsJG9TBc47x4AhgWxWkMCdBbTZiGhBy1RFv0oBQEmAUELCtpgNxGuivsjNajiXh95x3gH-NY2nyTyAtdF4","expirationTime":null,"keys":{"p256dh":"BPcqPUFomZZCNIrcbzqLWaDL-Hyc3vNuxqeMKmhbbBxJNeExd0AyZuW33gMYEEiNG9go_IyUS0VQEnDN_zj-B8E","auth":"Sn8691zwOGCd3ttXCbb47w"}}
в моемNotification.php, но я не знаю, что написать в моем файле.Это должен быть файл php?или файл JS?Справка
sw.js
'use strict';
self.addEventListener('push', function (event) {
console.log('[Service Worker] Push Received.');
console.log(`[Service Worker] Push had this data: "${event.data.text()}"`);
const title = 'Push Codelab';
const options = {
body: 'Yay it works.',
icon: 'images/icon.png',
badge: 'images/badge.png'
};
event.waitUntil(self.registration.showNotification(title, options));
});
self.addEventListener('notificationclick', function (event) {
console.log('[Service Worker] Notification click Received.');
event.notification.close();
event.waitUntil(
clients.openWindow('https://developers.google.com/web/')
);
});