cordova-plugin-proximity
cordova-plugin-proximity
npm i cordova-plugin-proximity
cordova-plugin-proximity

cordova-plugin-proximity

Cordova Plugin for the Device Proximity Sensor

by awoken-well

1.1.0 (see all)License:ISCTypeScript:Not Found
npm i cordova-plugin-proximity
Readme

org.awokenwell.proximity

This plugin provides access to the device's (IR) proximity sensor. This sensor is typically used in applications to prevent touch events on the screen when the device is held close to one's face.

Installation

cordova plugin add https://github.com/awoken-well/cordova-plugin-proximity.git

Supported Platforms

  • iOS
  • Android

Methods

  • navigator.proximity.getProximityState
  • navigator.proximity.enableSensor
  • navigator.proximity.disableSensor

Get the current proximity sensor state: true = near, false = far.

This proximity state is returned to the 'successCallback' callback function.

navigator.proximity.getProximityState(successCallback);

Enable the proximity sensor. In iOS the proximity sensor is disabled by default and must be enabled manually.

navigator.proximity.enableSensor();

Disable the proximity sensor.

navigator.proximity.disableSensor();

Example 1

function onSuccess(state) {
    alert('Proximity state: ' + (state ? 'near' : 'far'));
};

navigator.proximity.enableSensor();

setInterval(function(){
  navigator.proximity.getProximityState(onSuccess);
}, 1000);

Example 2

This example shows a watcher. If other things approaches the phone, 'on_approch_callback' would be called.

var proximitysensor = {
};

var proximitysensorWatchStart = function(_scope, on_approch_callback) {
    if(navigator.proximity == null)
        console.log("cannot find navigator.proximity");

    navigator.proximity.enableSensor();

    // Start watch timer to get proximity sensor value
    var frequency = 100;
    _scope.id = window.setInterval(function() {
        navigator.proximity.getProximityState(function(val) { // on success
            var timestamp = new Date().getTime();
            if(timestamp - _scope.lastemittedtimestamp > 1000) { // test on each 1 secs
                if( proximitysensor.lastval == 1 && val == 0 ) { // far => near changed
                    _scope.lastemittedtimestamp = timestamp;
                    _scope.lastval = val;
                    on_approch_callback(timestamp);
                }
            }
            _scope.lastval = val;
        });
    }, frequency);
}

var proximitysensorWatchStop = function(_scope) {
    if(navigator.proximity == null)
        console.log("cannot find navigator.proximity");

    window.clearInterval( _scope.id );

    navigator.proximity.disableSensor();
};

proximitysensorWatchStart(proximitysensor, function(timestamp) {
   console.log('approched on ' + timestamp);
});

// .... after testing
//proximitysensorWatchStop(proximitysensor);

iOS Quirks

  • iOS will automatically dim the screen and disable touch events when the proximity sensor is in the 'near' state. This can be circumvented by using undocumented API calls, but will result in App Store rejection.

Downloads/wk

3

GitHub Stars

28

LAST COMMIT

6yrs ago

MAINTAINERS

1

CONTRIBUTORS

5

OPEN ISSUES

8

OPEN PRs

0
VersionTagPublished
1.1.0
latest
7yrs ago
No alternatives found
No tutorials found
Add a tutorial

Rate & Review

100
No reviews found
Be the first to rate