--- title: Proximity slug: Web/API/Proximity_Events translation_of: Web/API/Proximity_Events ---

{{ SeeCompatTable }}

摘要

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

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

近距事件

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

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

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

範例

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
{{ SpecName('Proximity Events', '', 'Proximity Events') }} {{ Spec2('Proximity Events') }} Initial specification

瀏覽器相容性

{{ CompatibilityTable() }}

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
{{domxref("DeviceProximityEvent")}} {{CompatNo()}} {{CompatVersionUnknown()}} {{CompatNo()}} {{CompatNo()}} {{CompatNo()}}
{{domxref("UserProximityEvent")}} {{CompatNo()}} {{CompatVersionUnknown()}} {{CompatNo()}} {{CompatNo()}} {{CompatNo()}}
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
{{domxref("DeviceProximityEvent")}} {{CompatNo()}} {{CompatNo()}} {{ CompatGeckoMobile("15.0") }} {{CompatNo()}} {{CompatNo()}} {{CompatNo()}}
{{domxref("UserProximityEvent")}} {{CompatNo()}} {{CompatNo()}} {{CompatVersionUnknown()}} {{CompatNo()}} {{CompatNo()}} {{CompatNo()}}

另可參閱