service workers push api hands-on
TRANSCRIPT
Demo
π = 4 × arctan1 を利用して π の値を求める。
http://dev.ww24.jp/javascript/PI/
Service Workers で出来る事
・Cache
ApplicationCache よりも高度なキャッシュ機能
・Push
PUSH 通知
・Sync 指定した任意のタイミングで起動
http://www.w3.org/TR/service-workers/
Web の PUSH 通知事情
今までも Notification API を使う事で、通知は可能。
WebSocket 等でリアルタイム通信を行い、Notification API でネイティブのような通知を発行。
Service Workers PUSH API
GCM
Server
Google Cloud Messaging
(Chrome の場合)
イベント通知
イベント通知
データ取得イベント通知
スマホ等のブラウザ
①②
③
昨日、Chrom
e 42 リリース
!
http://googlechromereleases.blogspot.jp/2015/04/stable-channel-update_14.html
http://googlechromereleases.blogspot.jp/2015/04/chrome-for-android-update.html
Chrome for Android は数日中にリリース予定本日、
Chrome for
Android 42
リリース!
Google Cloud Messaging
参考:
Google Cloud メッセージング(GCM)の使用
- Google Play デベロッパー ヘルプ
https://support.google.com/googleplay/android-developer/answer/2663268?hl=ja
https://console.developers.google.com/
↑ Developer Console を開きます。
※このスクリーンショットは古いので、現在の UI とは 異なっている箇所が何点かありますが、雰囲気は同じ なので察してください。
https://console.developers.google.com/
0.0.0.0/0 を設定すると、全ての IP アドレスを許可
manifest.json
{ "name": "push test", "short_name": "push!", "icons": [{ "src": "html5.png", "sizes": "64x64", "type": "image/png" }], "start_url": "/", "display": "standalone", "gcm_sender_id": "849903130382", "gcm_user_visible_only": true }
gcm_sender_id
Web Server
Service Workers を試すには、 Web Server が必要。 ホスト名が localhost の場合に限って HTTP
Server でも使える。
それ以外の場合は HTTPS Server が必要。
実際の Push Event の発火方法
curl --header "Authorization: key=API_KEY" --header "Content-Type: application/json" https://android.googleapis.com/gcm/send -d "{\"registration_ids\":[\"SUBSCRIPTION_ID\"]}"
Invoke-RestMethod -Headers @{Authorization="key=API_KEY"} -ContentType "application/json" -Uri "https://android.googleapis.com/gcm/send" -Method POST -Body "{`"registration_ids`":[`"SUBSCRIPTION_ID`"]}"
Mac, Linux の場合
Windows (PowerShell) の場合
(入力する際に改行は不要です)
参考資料 ⅠService Worker の紹介: Service Worker の使い方 - HTML5 Rocks
http://www.html5rocks.com/ja/tutorials/service-worker/introduction/
ServiceWorker API - Web API インターフェイス | MDN
https://developer.mozilla.org/ja/docs/Web/API/ServiceWorker_API
Push Notifications on the Open Web http://updates.html5rocks.com/2015/03/push-notificatons-on-the-open-web
参考資料 ⅡIs ServiceWorker ready? (ブラウザの対応状況)
https://jakearchibald.github.io/isserviceworkerready/
W3C Working Draft http://www.w3.org/TR/service-workers/
GCM HTTP Connection Server | Android Developers https://developer.android.com/google/gcm/http.html
Chrome - Service Worker 開発するときのデバッグ方法 - Qiita
http://qiita.com/tmtysk/items/f77e31d6e9380e1c94a2