Skip to content

Instantly share code, notes, and snippets.

@GitHub30
Last active August 3, 2022 08:59
Show Gist options
  • Save GitHub30/ba8c5895f240b121a7e1b5fb05b59982 to your computer and use it in GitHub Desktop.
Save GitHub30/ba8c5895f240b121a7e1b5fb05b59982 to your computer and use it in GitHub Desktop.
const applicationServerKey = 'BDd3_hVL9fZi9Ybo2UUzA284WG5FZR30_95YeZJsiApwXKpNcF1rRPF3foIiBHXRdJI2Qhumhf6_LFTeZaNndIo'
async function send() {
let reg = await navigator.serviceWorker.getRegistration()
if (!reg) reg = await navigator.serviceWorker.register('./service-worker.js')
let subs = await reg.pushManager.getSubscription()
if (!subs) subs = await (await navigator.serviceWorker.ready).pushManager.subscribe({ userVisibleOnly: true, applicationServerKey })
const subscription = subs.toJSON()
await fetch('https://web-push-server.vercel.app/api/send', {
method: 'POST',
body: JSON.stringify({ subscription, payload: { title: 'やあ😸' } })
})
}
if (Notification.permission === 'default') {
Notification.requestPermission().then(permission => {
if (permission === 'granted') send()
else if (permission === 'default') {
addEventListener('click', () => Notification.requestPermission().then(permission => permission === 'granted' && send()), { once: true })
}
})
} else if (Notification.permission === 'granted') {
send()
}
@GitHub30
Copy link
Author

GitHub30 commented Aug 3, 2022

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment