mirror of
https://iceshrimp.dev/iceshrimp/iceshrimp
synced 2024-12-19 17:18:12 +09:00
32 lines
757 B
JavaScript
32 lines
757 B
JavaScript
/**
|
|
* Service Worker
|
|
*/
|
|
|
|
// インストールされたとき
|
|
self.addEventListener('install', () => {
|
|
console.log('[sw]', 'Your ServiceWorker is installed');
|
|
});
|
|
|
|
// プッシュ通知を受け取ったとき
|
|
self.addEventListener('push', ev => {
|
|
// クライアント取得
|
|
self.clients.matchAll({
|
|
includeUncontrolled: true
|
|
}).then(clients => {
|
|
// クライアントがあったらストリームに接続しているということなので通知しない
|
|
if (clients.length != 0) return;
|
|
|
|
const { type, body } = ev.data.json();
|
|
handlers[type](body);
|
|
});
|
|
});
|
|
|
|
const handlers = {
|
|
mention: body => {
|
|
self.registration.showNotification('mentioned', {
|
|
body: body.text,
|
|
icon: body.user.avatar_url + '?thumbnail&size=64',
|
|
});
|
|
}
|
|
};
|