Уведомление Javascript не вызывается при сборке отладки веб-приложения FlutterJavascript

Форум по Javascript
Ответить
Anonymous
 Уведомление Javascript не вызывается при сборке отладки веб-приложения Flutter

Сообщение Anonymous »

Я хочу открыть новую страницу при нажатии на уведомление в моем веб-приложении Flutter. Вот мой сервис-воркер:

Код: Выделить всё

console.log("SW: test.js loaded");

self.addEventListener("push", event => {
console.log("SW: Push event received:", event);

let data = {};
try {
data = event.data ? event.data.json() : {};
} catch (err) {
console.warn("SW: Push data not JSON, using empty object");
}

const title = data.title || "Test Push Title";
const options = {
body: data.body || "This notification came from the push event.",
icon: "/icons/icon-192.png",
tag: "push-demo",
data: {
url: "/"
}
};

console.log("SW: Showing notification:", title, options);

event.waitUntil(
self.registration.showNotification(title, options)
);
});

self.addEventListener("notificationclick", event => {
console.log("SW: Notification clicked event:", event);

event.notification.close();

const url = event.notification.data.url || "/";

event.waitUntil(
clients.openWindow(url)
);
});


И здесь я регистрирую сервис-воркера:

Код: Выделить всё

if ('serviceWorker' in navigator) {
window.addEventListener('load', function () {
navigator.serviceWorker.register('test.js').then(reg => {
console.log("SW registered:", reg);
}).catch(err => {
console.error("SW failed:", err);
});
});
}


Проблема в том, что когда я запускаю приложение на локальном хосте, уведомление отображается, но обратный вызов щелчка не запускается. Вот вывод консоли в отладочной сборке:

Код: Выделить всё

 SW: test.js loaded
test.js:4 SW: Push event received: PushEvent {isTrusted: true, data: PushMessageData, type: 'push', target: ServiceWorkerGlobalScope, currentTarget: ServiceWorkerGlobalScope, …}
test.js:10 SW: Push data not JSON, using empty object
(anonymous) @ test.js:10
test.js:23 SW: Showing notification: Test Push Title {body: 'This notification came from the push event.', icon: '/icons/icon-192.png', tag: 'push-demo', data: {…}}
В релизной сборке всё работает нормально. Как я могу протестировать событие NotificationClick в отладочной сборке?

Подробнее здесь: https://stackoverflow.com/questions/798 ... ebug-build
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»