68

Web Tech & Architecture

Embed Size (px)

Citation preview

{ "short_name": "れっさーもふもふ", "name": "レッサーパンダのもふもふ素敵アプリ!", "icons": [ { "src": "launcher-icon-3x.png", "sizes": "144x144", "type": "image/png" } ], "start_url": "index.html", "display": "standalone" }

async function registerForPush() { // Service Worker を登録、 let registration = await navigator.serviceWorker.register('sw.js') // プッシュ通知を購読済みか確認、 let subscription = await registration.pushManager.getSubscription() // 未購読であれば購読リクエスト if (!subscription) { subscription = await registration.pushManager.subscribe() } // サーバ側にも記録 await fetch('/save-push-endpoint', { method: 'post', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(subscription) }) // あとは必要時に subscription.endpoint に POST でプッシュ通知! }

HTML5

CSS3

ECMA6

DOM4 HTTP/2

IndexedDB

WAI-ARIA

WebRTC TCP

SVG

Audio

DNT

HTML5

CSS3

ECMA6

DOM4 HTTP/2

IndexedDB

WAI-ARIA

WebRTC TCP

SVG

Audio

DNT

HTML5

CSS3

WebGLECMA6

DOM4 HTTP/2

IndexedDB

WAI-ARIA

WebRTC TCP

asm.js

SVG

Audio

WebVR

DNT

HTML5

CSS3

WebGLECMA6

DOM4 HTTP/2

IndexedDB

WAI-ARIA

WebRTC TCP

asm.js

SVG

Audio

WebVR

DNT

HTML5

CSS3

WebGLECMA6

DOM4 HTTP/2

IndexedDB

ServiceWorkers

WAI-ARIA

WebRTC

Presentation

TCP

asm.js

SVG

Audio

Push

ManifestWebVR

DNT

HTML5

CSS3

WebGLECMA6

DOM4 HTTP/2

IndexedDB

ServiceWorkers

WAI-ARIA

WebRTC

Presentation

TCP

asm.js

SVG

Audio

Push

ManifestWebVR

DNT