diff options
| author | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-09-06 11:09:24 +0900 |
|---|---|---|
| committer | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-09-06 11:09:24 +0900 |
| commit | 9e188ca3faee0ba2368bd2395e9a6159b2b06d72 (patch) | |
| tree | dcff178a7679884e44deddbb62fe1f456e671cee /packages/frontend/src/components/MkPushNotificationAllowButton.vue | |
| parent | enhance(frontend): AiScriptAppウィジェットで構文エラーを検知... (diff) | |
| download | misskey-9e188ca3faee0ba2368bd2395e9a6159b2b06d72.tar.gz misskey-9e188ca3faee0ba2368bd2395e9a6159b2b06d72.tar.bz2 misskey-9e188ca3faee0ba2368bd2395e9a6159b2b06d72.zip | |
Revert "refactor"
This reverts commit aa85d701b913a0d1577dd4fbfa66c6589138925f.
Diffstat (limited to 'packages/frontend/src/components/MkPushNotificationAllowButton.vue')
| -rw-r--r-- | packages/frontend/src/components/MkPushNotificationAllowButton.vue | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/packages/frontend/src/components/MkPushNotificationAllowButton.vue b/packages/frontend/src/components/MkPushNotificationAllowButton.vue index c651d3a3f5..9c37eb5e72 100644 --- a/packages/frontend/src/components/MkPushNotificationAllowButton.vue +++ b/packages/frontend/src/components/MkPushNotificationAllowButton.vue @@ -78,7 +78,7 @@ function subscribe() { // SEE: https://developer.mozilla.org/en-US/docs/Web/API/PushManager/subscribe#Parameters return promiseDialog(registration.value.pushManager.subscribe({ userVisibleOnly: true, - applicationServerKey: urlBase64ToBase64(instance.swPublickey), + applicationServerKey: urlBase64ToUint8Array(instance.swPublickey), }) .then(async subscription => { pushSubscription.value = subscription; @@ -131,16 +131,22 @@ function encode(buffer: ArrayBuffer | null) { } /** - * Convert the URL safe base64 string to a base64 string + * Convert the URL safe base64 string to a Uint8Array * @param base64String base64 string */ -function urlBase64ToBase64(base64String: string): string { +function urlBase64ToUint8Array(base64String: string): Uint8Array { const padding = '='.repeat((4 - base64String.length % 4) % 4); const base64 = (base64String + padding) .replace(/-/g, '+') .replace(/_/g, '/'); - return base64; + const rawData = window.atob(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) { |