我試圖運行一個Web應用程序,該窗口處於非活動狀態時發送推送通知。要做到這一點,我有一個服務工作者,幫助從我的PHP服務器(通過Firebase)接收通知。檢查窗口是否從服務工作者處於活動狀態
但是,我不確定如何檢查窗口是否通過我的服務人員激活。服務工作者無法訪問DOM,因此我無法直接通過那裏檢查它,並且我試着對附加的JS文件進行檢查,但服務工作者獲取變量未定義的錯誤。我的服務工作者的代碼如下:
self.addEventListener('push', function(event) {
console.log('[Service Worker] Push Received.');
// console.log(`[Service Worker] Push had this data: "${event.data.text()}"`);
const title = 'Chat';
const options = {
body: 'New message received!',
icon: '/images/logo/8-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://localhost:8000')
);
});
誰能賜教用正確的方法來檢查活動窗口,以防止推送通知,如果Web應用程序被激活?
謝謝!