【发布时间】:2014-03-31 10:29:58
【问题描述】:
我正在使用这个事件: http://cordova.apache.org/docs/en/3.0.0/cordova_events_events.md.html#batterystatus
它工作正常,当它改变或开始/结束充电时它会获取电池电量。
但是,如何在打开应用程序时立即获得电池电量?谢谢。
【问题讨论】:
标签: ios iphone objective-c cordova batterylevel
我正在使用这个事件: http://cordova.apache.org/docs/en/3.0.0/cordova_events_events.md.html#batterystatus
它工作正常,当它改变或开始/结束充电时它会获取电池电量。
但是,如何在打开应用程序时立即获得电池电量?谢谢。
【问题讨论】:
标签: ios iphone objective-c cordova batterylevel
您好,您可以编写一个插件来获取当前电池电量,更多关于插件开发检查this 并在 deviceready 事件中调用此插件
*javascript
cordova.exec(function(status) {
console.log(status); //will get current ststus
}, function(error) {}, "Status",
"Status", ["givestatus"]);
这是本机代码Objective C
- (void)Status:(CDVInvokedUrlCommand*)command
{
CDVPluginResult* pluginResult = nil;
NSString* myarg = [command.arguments objectAtIndex:0];
if (myarg != nil) {
[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
UIDevice *myDevice = [UIDevice currentDevice];
[myDevice setBatteryMonitoringEnabled:YES];
double batLeft = (float)[myDevice batteryLevel] * 100;
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:@"%.f",batLeft]];
} else {
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Arg was null"];
}
[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
}
也将新项目添加到 config.xml
<feature name="Status">
<param name="ios-package" value="Status" />
</feature>
【讨论】:
CDV = ( typeof CDV == 'undefined' ? {} : CDV ); var cordova = window.cordova || window.Cordova; cordova.exec(function(status) { console.log(status); //will get current ststus }, function(error) {}, "Status", "Status", ["givestatus"]); 我在配置文件中添加了功能参考。但是我不确定如何实现本机代码。
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:[NSString stringWithFormat:@"%.0f", batLeft]];