This commit is contained in:
syuilo 2025-08-28 19:53:10 +09:00
parent f0833cffe9
commit aa85d701b9
1 changed files with 4 additions and 10 deletions

View File

@ -78,7 +78,7 @@ function subscribe() {
// SEE: https://developer.mozilla.org/en-US/docs/Web/API/PushManager/subscribe#Parameters // SEE: https://developer.mozilla.org/en-US/docs/Web/API/PushManager/subscribe#Parameters
return promiseDialog(registration.value.pushManager.subscribe({ return promiseDialog(registration.value.pushManager.subscribe({
userVisibleOnly: true, userVisibleOnly: true,
applicationServerKey: urlBase64ToUint8Array(instance.swPublickey), applicationServerKey: urlBase64ToBase64(instance.swPublickey),
}) })
.then(async subscription => { .then(async subscription => {
pushSubscription.value = subscription; pushSubscription.value = subscription;
@ -131,22 +131,16 @@ function encode(buffer: ArrayBuffer | null) {
} }
/** /**
* Convert the URL safe base64 string to a Uint8Array * Convert the URL safe base64 string to a base64 string
* @param base64String base64 string * @param base64String base64 string
*/ */
function urlBase64ToUint8Array(base64String: string): Uint8Array { function urlBase64ToBase64(base64String: string): string {
const padding = '='.repeat((4 - base64String.length % 4) % 4); const padding = '='.repeat((4 - base64String.length % 4) % 4);
const base64 = (base64String + padding) const base64 = (base64String + padding)
.replace(/-/g, '+') .replace(/-/g, '+')
.replace(/_/g, '/'); .replace(/_/g, '/');
const rawData = window.atob(base64); return base64;
const outputArray = new Uint8Array(rawData.length);
for (let i = 0; i < rawData.length; ++i) {
outputArray[i] = rawData.charCodeAt(i);
}
return outputArray;
} }
if (navigator.serviceWorker == null) { if (navigator.serviceWorker == null) {