fix: push notifications — urlBase64ToUint8Array bug, add PushBanner prompt
This commit is contained in:
@@ -1,9 +1,8 @@
|
||||
function urlBase64ToUint8Array(base64String: string): ArrayBuffer {
|
||||
function urlBase64ToUint8Array(base64String: string): Uint8Array {
|
||||
const padding = '='.repeat((4 - (base64String.length % 4)) % 4)
|
||||
const base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/')
|
||||
const rawData = window.atob(base64)
|
||||
const arr = new Uint8Array([...rawData].map(char => char.charCodeAt(0)))
|
||||
return arr.buffer as ArrayBuffer
|
||||
return new Uint8Array([...rawData].map(char => char.charCodeAt(0)))
|
||||
}
|
||||
|
||||
export async function registerSW(): Promise<ServiceWorkerRegistration | null> {
|
||||
@@ -22,7 +21,7 @@ export async function subscribeToPush(vapidPublicKey: string): Promise<PushSubsc
|
||||
if (existing) return existing
|
||||
return await reg.pushManager.subscribe({
|
||||
userVisibleOnly: true,
|
||||
applicationServerKey: urlBase64ToUint8Array(vapidPublicKey),
|
||||
applicationServerKey: urlBase64ToUint8Array(vapidPublicKey) as unknown as ArrayBuffer,
|
||||
})
|
||||
} catch { return null }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user