MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

這是一個實驗中的功能
此功能在某些瀏覽器尚在開發中,請參考兼容表格以得到不同瀏覽器用的前輟。

摘要

近距 (Proximity) 事件可迅速感測出使用者靠近裝置,並迅速做出反應。舉例來說,當使用者接通來電並將裝置靠近耳朵時,智慧型手機隨即關閉螢幕。

注意:顯然裝置必須具備近距感測器 (Proximity sensor),此 API 才能發揮作用。而目前幾乎只有行動裝置搭載接近感測器。若裝置並未搭載感測器,則雖同樣可支援,但永遠不會觸發此類事件。

近距事件

只要近距感測器測得「裝置」與「物體」之間的距離改變時,就會通知瀏覽器這項變化。而只要瀏覽器獲得通知,隨即啟動 DeviceProximityEvent 以因應任何變化;或啟動 UserProximityEvent 以因應簡單的變化。

透過 addEventListener 函式 (使用 deviceproximityuserproximity 事件名稱);或將事件處理器 (Event handler) 附掛至 window.ondeviceproximitywindow.onuserproximity 屬性,均可於 window 物件層級就擷取到此事件。

在擷取事件之後,事件物件將可存取不同的資訊:

  • DeviceProximityEvent 事件透過本身的 value 屬性,可提供裝置與物體之間的確實距離。另透過本身的 minmax 屬性,則能設定「裝置測得某物」的最近與最遠距離。
  • UserProximityEvent 事件則提供粗略的距離,並以 Boolean 值呈現。物體靠近時,UserProximityEvent.near 屬性即為 true;物體遠離則為 false。

範例

window.addEventListener('userproximity', function(event) {
  if (event.near) {
    // let's power off the screen
    navigator.mozPower.screenEnabled = false;
  } else {
    // Otherwise, let's power on the screen
    navigator.mozPower.screenEnabled = true;
  }
});

規格

Specification Status Comment
Proximity Events
The definition of 'Proximity Events' in that specification.
Working Draft Initial specification

瀏覽器相容性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
DeviceProximityEvent No support (Yes) No support No support No support
UserProximityEvent No support (Yes) No support No support No support
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
DeviceProximityEvent No support No support 15.0 (15.0) No support No support No support
UserProximityEvent No support No support (Yes) No support No support No support

另可參閱

文件標籤與貢獻者

 此頁面的貢獻者: jackblackevo, teoli, MashKao
 最近更新: teoli,