This commit is contained in:
@@ -78,7 +78,10 @@ async function requestNotificationPermission() {
|
||||
}
|
||||
|
||||
try {
|
||||
const applicationServerKeyPromise = getVapidPublicKey()
|
||||
const subscribeOptionsPromise = getVapidPublicKey().then((applicationServerKey) => ({
|
||||
userVisibleOnly: true,
|
||||
applicationServerKey,
|
||||
}))
|
||||
|
||||
const permission = await Notification.requestPermission()
|
||||
if (permission !== 'granted') {
|
||||
@@ -87,10 +90,16 @@ async function requestNotificationPermission() {
|
||||
|
||||
const registration = await navigator.serviceWorker.ready
|
||||
|
||||
const subscription = await registration.pushManager.subscribe({
|
||||
userVisibleOnly: true,
|
||||
applicationServerKey: await applicationServerKeyPromise,
|
||||
})
|
||||
const subscription = await registration.pushManager
|
||||
.subscribe(await subscribeOptionsPromise)
|
||||
.catch(async (error) => {
|
||||
const oldSubscription = await registration.pushManager.getSubscription()
|
||||
if (!oldSubscription) {
|
||||
throw error
|
||||
}
|
||||
await oldSubscription.unsubscribe()
|
||||
return registration.pushManager.subscribe(await subscribeOptionsPromise)
|
||||
})
|
||||
|
||||
const webPushSubscriptionDoc = await saveWebPushSubscription(subscription)
|
||||
emit('change')
|
||||
|
||||
Reference in New Issue
Block a user