資料をmarkdownで書いたので、gistに貼って共有したのですが、JS埋め込みなどが効かなかったのでブログに貼ることにしました。
自己紹介などは省略しております。あしからず。
(下記資料内の対応ブラウザの欄のFirefoxのあとの(M)はFirefox Mobileを表現しています)
今日のはなし
Web API とは(1)
WebAPI はデバイスの互換性一式と、Web アプリやコンテンツがデバイスに保存されているデータ (カレンダーや連絡先など) に加えてデバイスハードウェア (バッテリーの状態やデバイスのバイブレーションハードウェアなど) へアクセスできるようにする API を指す用語です。これらの API を追加することにより今日の Web ができることを増やすとともに、従来はプロプライエタリなプラットフォームでしかできなかったことに広がることを望んでいます。
via https://developer.mozilla.org/ja/docs/WebAPI
Web API とは(2)
- 要約すると
JSからデバイス内のデータやハードウェアにアクセスするための各種APIの総称
- MozillaがFirefox OSの開発のために積極的に実装(しているものが比較的多い)
- まだ仕様が草稿・勧告候補段階または標準化提案がなされていないものもあります
- 掲載、参照しているサンプルは今後の仕様変更などによる影響を大きく受ける場合があります。
- MozillaがFirefox OSの開発のために積極的に実装(しているものが比較的多い)
- Firefox OS以外(Android版FirefoxやChrome、デスクトップ向けFirefox)でも動くものをピックアップして紹介します。
WebRTC
Geolocation API
- デバイスの経度緯度を取得 − ほぼ全てのデスクトップ向けモバイル向けブラウザで動作
デモ
Web Notifications API
デモ
Network Information API
- デバイスのネットワーク接続に関する情報を取得
- ネットワーク変更イベント
- 帯域、従量制であるか
- サポート:Firefox, Android Webkit, Firefox(M)
- デモ:http://colinfrei.com/networkapi.html
Battery Status API
- デバイスのバッテリーに関する各種機能を提供
- 充電状況の変更を通知
- 充電残量を取得
- サポート:Firefox, Firefox(M), Chrome(実装作業中)
- デモ:http://robnyman.github.io/battery/
Pointer Lock API
- マウスポインタをロック&非表示にした上でマウスの動きなどを取得できる。
- 例えばユーザがボタンをクリックすることなく、マウスを動かすだけで視点をコントロールできるアプリを作成できます。
- サポート:Chrome, Firefox
Vibration API
- デバイスのバイブレーション機能を利用するためのAPI
モバイルデバイスで動画を見ていて、爆発シーンでデバイスが少し振動すると想像してみましょう。あるいはボンバーマンをプレイしていて、ブロックが爆発するときに穏やかな衝撃を感じると想像してみましょう!
- サポート:Firefox, Android Webkit, Firefox(M)
- デモ:http://robnyman.github.io/vibration/
devicelight event
- デバイスの光センサの値の変更時に発火するイベント。
- 環境によって背景のコントラストを変えるなどが可能になる。
event.value
に単位ルクスで格納される
- サポート:Firefox(Macのみ), Firefox(M)
デモ
ここが変わる〜〜〜
deviceproximity Event
- デバイスの近接センサーの変化に応じてイベントを発火。
- 詳細な値を取得する
deviceproximity
イベントとおおまかに近いかどうかを返すuserproximity
イベントがある
- 詳細な値を取得する
- サポート:Firefox, Firefox(M)
その他各種センサ系API
devicelight
とdeviceproximity
はそれぞれSensor DOM Eventとして提案されている。
上記2つは勧告候補になっている。Sensor Eventとしては下記のものも提案されている。
- devicetemperature
- 温度センサ(℃)
- devicepressure
- 圧力センサ(kP)
- devicehumidity
- 湿度センサ(%)
- devicenoise
- 雑音センサ(dbA)