mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 11:42:04 +08:00
51 lines
2.0 KiB
TypeScript
51 lines
2.0 KiB
TypeScript
import application = require("application");
|
|
import observable = require("data/observable");
|
|
import pages = require("ui/page");
|
|
import labelModule = require("ui/label");
|
|
|
|
var batteryLabel: labelModule.Label;
|
|
var registered = false;
|
|
var batteryObserver: any;
|
|
|
|
application.on(application.exitEvent, () => {
|
|
if (application.android) {
|
|
application.android.unregisterBroadcastReceiver(android.content.Intent.ACTION_BATTERY_CHANGED);
|
|
}
|
|
else {
|
|
application.ios.removeNotificationObserver(batteryObserver, UIDeviceBatteryLevelDidChangeNotification);
|
|
}
|
|
});
|
|
|
|
export function onPageLoaded(args: observable.EventData) {
|
|
var page = <pages.Page>args.object;
|
|
batteryLabel = page.getViewById<labelModule.Label>("batteryLabel");
|
|
|
|
if (registered) {
|
|
return;
|
|
}
|
|
|
|
if (application.android) {
|
|
application.android.registerBroadcastReceiver(android.content.Intent.ACTION_BATTERY_CHANGED,
|
|
function onReceiveCallback(context: android.content.Context, intent: android.content.Intent) {
|
|
var level = intent.getIntExtra(android.os.BatteryManager.EXTRA_LEVEL, -1);
|
|
var scale = intent.getIntExtra(android.os.BatteryManager.EXTRA_SCALE, -1);
|
|
var percent = (level / scale) * 100.0;
|
|
var message = "Battery: " + percent + "%";
|
|
console.log(message);
|
|
batteryLabel.text = message;
|
|
});
|
|
}
|
|
else {
|
|
var onReceiveCallback = function onReceiveCallback(notification: NSNotification) {
|
|
var percent = UIDevice.currentDevice().batteryLevel * 100;
|
|
var message = "Battery: " + percent + "%";
|
|
console.log(message);
|
|
batteryLabel.text = message;
|
|
}
|
|
UIDevice.currentDevice().batteryMonitoringEnabled = true;
|
|
onReceiveCallback(null);
|
|
batteryObserver = application.ios.addNotificationObserver(UIDeviceBatteryLevelDidChangeNotification, onReceiveCallback);
|
|
}
|
|
registered = true;
|
|
}
|