Wprowadzam Webpush ruby gem do wysyłania powiadomień push do użytkowników mojej witryny.Otwórz niestandardowy adres URL po kliknięciu powiadomienia wypychania WWW
kod serwera:
Webpush.payload_send({
message: notification.message,
url: notification.url, # I can't figure out how to access this key
id: notification.id, # or this key from the service worker
endpoint: endpoint,
p256dh: p256dh_key,
vapid: vapid_keys,
ttl: 24 * 60 * 60,
auth: auth_key,
})
Mam pracownika Service Set up po stronie klienta, aby pokazać powiadomienia i uczynić go kliknąć.
self.addEventListener("push", function (event) {
var title = (event.data && event.data.text()) || "New Message";
event.waitUntil(
self.registration.showNotification(title, {
body: "New push notification",
icon: "/images/[email protected]",
tag: "push-notification-tag",
data: {
url: event.data.url, // This is returning null
id: event.data.id // And this is returning null
}
})
)
});
self.addEventListener('notificationclick', function(event) {
event.notification.close();
event.waitUntil(
clients.openWindow(event.data.url + "?notification_id=" + event.data.id)
);
})
To wszystko działa dobrze, z wyjątkiem klawiszy niestandardowych (url
, id
), że jestem przejazdem nie są dostępne z poziomu pracownika serwisu.
Czy ktoś wie, jak przekazywać niestandardowe dane przez gem WebPush?
Nie jestem ekspertem w tym, ale chciałbym zrobić: wiadomość: JSON.stringify (powiadomienie) na serwer i JSON.parse na kliencie ... –
@ Jonasw - Skończyłem z rozwiązaniem. Jeśli napiszesz to jako odpowiedź, zaakceptuję to. Dzięki za pomoc. – BananaNeil