Skip to content
Permalink
Browse files
CB-7953 Add cordova-plugin-battery-status support for browser platform
Added browser support
Updated the docs

github close #20
  • Loading branch information
daserge authored and sgrebnov committed Jun 15, 2015
1 parent 51185c0 commit ed64714c55ba6e3366e8af710200b01bf687c137
Showing 3 changed files with 102 additions and 0 deletions.
@@ -58,6 +58,7 @@ attach an event listener after the `deviceready` event fires.
- Windows (Windows Phone 8.1 only)
- Tizen
- Firefox OS
- Browser

### Android and Amazon Fire OS Quirks

@@ -74,6 +75,10 @@ parameter _is_ supported.
Windows Phone 8.1 does not support `isPlugged` parameter.
The `level` parameter _is_ supported.

### Browser Quirks

Supported browsers are Chrome, Firefox and Opera.

### Example

window.addEventListener("batterystatus", onBatteryStatus, false);
@@ -107,6 +112,7 @@ an event listener once the `deviceready` event fires.
- Tizen
- Firefox OS
- Windows (Windows Phone 8.1 only)
- Browser

### Windows Quirks

@@ -121,6 +127,10 @@ Windows Phone 8.1 will fire `batterycritical` event regardless of plugged state
alert("Battery Level Critical " + info.level + "%\nRecharge Soon!");
}

### Browser Quirks

Supported browsers are Chrome, Firefox and Opera.

## batterylow

The event fires when the percentage of battery charge has reached the
@@ -145,6 +155,7 @@ attach an event listener once the `deviceready` event fires.
- Tizen
- Firefox OS
- Windows (Windows Phone 8.1 only)
- Browser

### Windows Quirks

@@ -158,3 +169,7 @@ Windows Phone 8.1 will fire `batterylow` event regardless of plugged state as it
// Handle the battery low event
alert("Battery Level Low " + info.level + "%");
}

### Browser Quirks

Supported browsers are Chrome, Firefox and Opera.
@@ -123,4 +123,11 @@
<runs />
</js-module>
</platform>

<!-- browser -->
<platform name="browser">
<js-module src="src/browser/BatteryProxy.js" name="Battery">
<runs />
</js-module>
</platform>
</plugin>
@@ -0,0 +1,80 @@
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/

var w3cBattery;
var winCallBack;

function success() {
winCallBack({ level: w3cBattery.level * 100, isPlugged: w3cBattery.charging });
}

var Battery = {
start: function(win, fail, args, env) {
try {
var subscribe = function(battery) {
w3cBattery = battery;
winCallBack = win;

success();

if (typeof w3cBattery.addEventListener === 'function') {
w3cBattery.addEventListener('levelchange', success, false);
w3cBattery.addEventListener('chargingchange', success, false);
} else {
w3cBattery.onlevelchange = success;
w3cBattery.onchargingchange = success;
}
}

if (typeof navigator.getBattery === 'function') {
navigator.getBattery().then(function(battery) {
subscribe(battery);
});
} else {
var origBattery = cordova.require('cordova/modulemapper').getOriginalSymbol(window, 'navigator.battery');

if (origBattery) {
subscribe(origBattery);
} else {
fail('Not supported');
}
}
} catch(e) {
fail(e);
};
},

stop: function() {
try {
if (typeof w3cBattery.removeEventListener === 'function') {
w3cBattery.removeEventListener('levelchange', success, false);
w3cBattery.removeEventListener('chargingchange', success, false);
} else {
w3cBattery.onlevelchange = null;
w3cBattery.onchargingchange = null;
}
} catch(e) {
console.warn('Error occured while trying to stop battery: ' + JSON.stringify(e));
};
}
};

require("cordova/exec/proxy").add("Battery", Battery);

0 comments on commit ed64714

Please sign in to comment.