Я пытаюсь следовать этому руководству (https://codelabs.developers.google.com/codelabs/push-notifications/#2) для реализации уведомлений в моем PWA, закодированном в reactjs.
На шаге 7 мы можем проверить наши уведомления, нажав кнопку ' отправить тестовую кнопку pu sh 'из chrome devtools. Но ничего не происходит.
У меня есть эта часть для EventListener:
/* eslint-disable no-restricted-globals */
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.'
};
event.waitUntil(self.registration.showNotification(title, options));
});
, и когда я нажимаю на кнопку теста, ничего не регистрируется.
Для обеспечения пользователя хорошо зарегистрировано:
function subscribeUser() {
const applicationServerKey = urlB64ToUint8Array(applicationServerPublicKey);
swRegistration.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey: applicationServerKey
})
.then(function(subscription) {
updateSubscriptionOnServer(subscription);
console.log(JSON.stringify(subscription));
isSubscribed = true;
})
.catch(function(error) {
console.error('Failed to subscribe the user: ', error);
});
}
и subscription
хорошо зарегистрировано.
Это выглядит так:
{"endpoint":"https://fcm.googleapis.com/fcm/send/fssJxc6xoFY:APA91bE-3ekrsC3YhKqff6D0Ahy2CEjcZsZMs4MXKx6sBI_BrKqDz5Y5VlWQWSIyOKjWanEu5qvjCKPmxUnDHn5KXnUuMnOu9r04GXbEgRSvdAwHRkJvQpB1TmRvHC6Vdso0zTV30IOu","expirationTime":null,"keys":{"p256dh":"BJpmEsvpcrUmC2TCbzwBKZ-g3OKupg_zGiH6UbI_XaDWS6Szu2g_uiwDzuDw5j0YiQ-Ku71KSMPL6R65xfyScwI","auth":"FvETyIJg0tKD49DPkizalQ"}}
Если у вас есть какие-либо идеи о том, почему это не работает, и какая часть моего кода неверна ..
Большое спасибо