Я пытаюсь реализовать push-уведомление firebase.У меня частично получилось, после получения уведомления я могу щелкнуть мышью, и управление перейдет в файл «firebase-messaging-sw.js».Ниже приведен код, который поможет вам лучше понять мою проблему.
Ниже приведен код файла firebase-messaging-sw.js
importScripts('https://www.gstatic.com/firebasejs/4.8.1/firebase-app.js')
importScripts('https://www.gstatic.com/firebasejs/4.8.1/firebase-messaging.js')
self.addEventListener('notificationclick', function(event) {
if (event.action === 'accept') {
// Like button was clicked
}
else if (event.action === 'declined') {
// Unsubscribe button was clicked
}
event.notification.close()
})
firebase.initializeApp({
messagingSenderId: "716766726073"
})
const messaging = firebase.messaging()
Ниже приведен код файла User.js
зарегистрировать файл firebase-messaging-sw.js
if (navigator && navigator.serviceWorker)
{
navigator.serviceWorker
.register('/firebase-messaging-sw.js')//''
.then(registration => {
console.log("ServiceWorker registered with scope:",registration.scope)
})
.catch(e => console.error("ServiceWorker failed:", e))
}
Ниже приведена функция для вызова уведомления
navigator.serviceWorker.getRegistration().then(function(reg) {
var options = {
body: "User Calling",
icon: details.img,
image: details.img,
requireInteraction: true,
vibrate: [100, 50, 100],
actions: [
{action: 'acceptCall', title: 'ACCEPT',
icon: ''},
{action: 'declineCall', title: 'DECLINE',
icon: ''},
]
}
reg.showNotification('Hello Team', options)
})
Когда я получаю уведомление и нажимаю на кнопку действия"событие получает огонь, который находится на firebase-messaging-sw.js.
Моя проблема
У меня есть несколько методов, которые находятся в файле User.js, и я хочу вызвать этот метод из firebase-messaging-sw.js файл.Я пытался импортировать, но это дает ошибку во время выполнения.Ниже приведена структура файла.
Root
--Static
--firebase-messaging-sw.js
--Store
--User.js
Надеюсь, я уверен в своих сомнениях, и любая помощь будет признательна.Спасибо.