これまでのWeb開発はブラウザの枠に閉じ込められ、ドキュメントレベルの操作とユーザインタラクションのハンドリングを提供するだけだった。W3Cはこの障壁を取り除き、開発者がデバイスや各種周辺機器とやりとりできるAPIを導入しようとしている。そうした仕様のうち、"Proximity Events"と"Ambient Light Events"がドラフトとしてLast Callステージに入った。今後数ヶ月でCandidate Recommendationステージに入り、実装も登場し始めるだろう。
"Proximity Events"と"Ambient Light Events" 仕様はそれぞれ、近接センサーや照度センサーからのイベントを、JavaScriptとHTML5のイベントハンドラ経由で受信する手段を定義している。
現在のところ、"Proximity Events"仕様は2つのインターフェイスを定義している。DeviceProximityEventはデバイスのオブジェクトからの距離に関する情報を開発者に提供する。UserProximityEventは近傍のオブジェクトを検出し、ブラウザおよびプラットフォーム固有の通知を開発者に提供する。DeviceProximityEventは3つのリードオンリー属性を公開している。
- min - 最小検出距離 (cm)
- max - 最大検出距離 (cm)
- value - 近傍のオブジェクトの近さ (cm)
このオブジェクトは、HTML5仕様でイベントハンドラとして定義された特別なコールバックに渡される。これは引数としてeventをとる。
// イベントハンドラ deviceProximityHandler = function(event) { document.writeln('min = ', event.min, 'max = ', event.max, 'value = ', event.value); // e.g. => min = 0 max = 5 value = 5 document.write('
'); } // イベントハンドラにリスナーを割り当てる window.addEventListener('deviceproximity', deviceProximityHandler);
UserProximityEventはほどほど「エキサイティング」で、オブジェクト近接通知のためのboolean属性nearへのアクセスを提供する
userProximityHandler = function(event) { document.write('near = ', event.near); // e.g. => near = true/false document.write('
'); } window.addEventListener('userproximity', userProximityHandler);
現在のところ、"Ambient Light Events"仕様も2つのインターフェイスを定義している。DeviceLightEventはルクスを単位とする照度をvalue属性で提供する。LightLevelEventはユーザエージェントで定義された照度に関する情報を、"dim" (50ルクス以下)、"normal"、"bright"" (10000ルクス以上) の3段階で提供する。
deviceLightHandler = function(event) { document.write('value = ', event.value); // e.g. => value = 10/100/1000 document.write('
'); } window.addEventListener('devicelight', deviceLightHandler);
現在のところ、DeviceProximityEvent、UserProximityEvent、DeviceLightEventはFirefox Mobileベータ版15以上で利用できる。Firefox Beta for Windowsにおける照度センサーのサポートも間もなく登場する予定だ。忘れないでほしい。これはサンプル実装であり、提供されている機能は大きく変更される可能性がある。たとえば、MozillaのDeviceLightEvent実装は、仕様上もはや定義されていないminとmaxへのアクセスを提供している。
"Proximity Events"と"Ambient Light Events"は、現在は分離されたSensor API仕様のかなり成熟したブランチだ。この仕様は温度、気圧、湿度、騒音などへのアクセスを野心的に定義しようとしている。この大きな野望は、将来のDOMを使ってユーザの環境とやりとりできるツールを開発者に垣間見させるだろう。開発者はこれらAPIに関して、特にLast Callのうちに、フィードバックするよう推奨されている。Device APIs Working Groupの公式メーリングリストを購読して会話に参加しよう。