これは実験的な機能です。本番で使用する前にブラウザー実装状況をチェックしてください。

proximity events は、ユーザーがデバイスの近くにいるときを知るのに便利な手段です。これらのイベントは近接度の変化への対応、例えばユーザーがスマートフォンを耳の近くに持ってきて電話をしているときにスクリーンを休止することを可能にします。

注記: この API はデバイスに近接センサーを必要とすることが明らかです。近接センサーは、たいていモバイルデバイスのみで使用できます。センサーを搭載していないデバイスもイベントをサポートするかもしれませんが、イベントは発生しません。

Proximity Event

デバイスの近接センサーがデバイスと物体との距離の変化を検出すると、それをブラウザーに通知します。ブラウザーが通知を受けると、あらゆる変化について DeviceProximityEvent イベントが、またよりおおざっぱな変化の場合に UserProximityEvent イベントが発生します。

このイベントは addEventListener メソッド (イベント名 deviceproximity または userproximity を使用) を使用するか、イベントハンドラーを window.ondeviceproximity プロパティまたは window.onuserproximity プロパティに接続することにより、window オブジェクトレベルで取得できます。

イベントを取得すると、イベントオブジェクトでさまざまな種類の情報にアクセスできます:

  • DeviceProximityEvent イベントは、デバイスと物体との距離に一致する値を value プロパティで提供します。また、デバイスが何らかの物体を検出できる最短距離および最長距離を、min プロパティおよび max プロパティで提供します。
  • UserProximityEvent イベントは、距離の大まかな近さを真偽値で表します。UserProximityEvent.near は物体が近いときに true に、また物体が遠いときに false になります。

window.addEventListener('userproximity', function(event) {
  if (event.near) {
    // スクリーンの電源を切る
    navigator.mozPower.screenEnabled = false;
  } else {
    // スクリーンの電源を入れる
    navigator.mozPower.screenEnabled = true;
  }
});

仕様

仕様書 策定状況 コメント
Proximity Sensor
Proximity Events の定義
草案 最初の仕様

ブラウザー実装状況

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
DeviceProximityEvent 未サポート (有)[1] 未サポート 未サポート 未サポート
UserProximityEvent 未サポート (有)[1] 未サポート 未サポート 未サポート
機能 Android Android 版 Chrome Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
DeviceProximityEvent 未サポート 未サポート 15.0 (15.0)[1] 未サポート 未サポート 未サポート
UserProximityEvent 未サポート 未サポート (有)[1] 未サポート 未サポート 未サポート

[1] これらのイベントは Firefox 60 で、設定項目 device.sensors.proximity.enabled によりデフォルトで無効になりました (バグ 1359076)。

関連情報

ドキュメントのタグと貢献者

このページの貢献者: yyss
最終更新者: yyss,