Не совсем понимаю как работает пуш
self.addEventListener('push', function (event) {
event.waitUntil(
fetch('/latest.json').then(function (response) {
if (response.status !== 200) {
console.log('Latest.json request error: ' + response.status);
throw new Error();
}
return response.json().then(function (data) {
if (data.error || !data.notification) {
console.error('Latest.json Format Error.', data.error);
throw new Error();
}
return self.registration.showNotification((not = data.notification).title, {
icon: not.icon,
body: not.body,
data: {url: not.url}
});
}).catch(function (err) {
console.error('Retrieve data Error', err);
});
})
);
});
self.addEventListener('notificationclick', function (event) {
event.notification.close();
var url = event.notification.data.url;
event.waitUntil(clients.openWindow(url));
});
sevice worket - регистрируется все ок, получаю зарегистрированный id
function urlBase64ToUint8Array(base64String) {
let rawData = window.atob((base64String + '='.repeat((4 - base64String.length % 4) % 4)).replace(/\-/g, '+').replace(/_/g, '/')),
outputArray = new Uint8Array(rawData.length);
for (var i = 0; i < rawData.length; ++i)
outputArray[i] = rawData.charCodeAt(i);
return outputArray;
}
reg.then(() => {return navigator.serviceWorker.ready;}).then(reg => reg.pushManager.subscribe({userVisibleOnly: true, applicationServerKey: urlBase64ToUint8Array('BAVR1KZoitVgsfJ8ICyp4XE0H4riw8SRIjr26F4TqM7HUrl5f3clkOMLNu_xZkQB__eJ7f_GRmpdC--BZjqmzcA')}).then(sub => this.jx(false, {md:'user', po:'push', pushid:sub.endpoint})));
Затем в latest.json
{"notification":{"icon":"https://site.ru/tpl/image/icon-android-192.webp", "url":"https://site.ru/","title":"Крутейшая новость","body":"Мы сделали офигительную подписку для Chrome"}, "id":"fItNWxYqKAc:APA91bHGR9OQftPghIk-BH6mVBFgYt5IwG9Nja7mj36DvxkjImUMFHOsgUDZFw3ug5a_3OL9GjfzAVAJ1JM0eORkErXIiSjl9kI-M_2-aN6-m6jbhas5AkEfTSkw5Aph1c69RX9EpQ"}
В браузере Sevice Worket, нажимаю на push. Отлично пуш уведомление приходит.
Не то. Собственно, есть уникальный id, рабочий и тд. Каким образом возможно отправить push увeдомление из под php?
Как то раз пытался, ничего не вышло...