我正在制作带有phonegap的iOS应用程序,我有一个本机部分和另一个phonegap部分。 我想用NSUserDefaults中保存的数据填充文本字段。我第一次尝试这个,没关系,但在其他时候没有任何事情发生,从来没有调用在NSUserDefaults中保存数据的iOS方法。
这是我的代码:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *text = @"";
if ([defaults valueForKey:@"mText"] != nil) {
text = [defaults valueForKey:@"mText"];
}
NSString *jsonString = [NSString stringWithFormat:@"{ \"mText\":\"%@\" }", text];
NSLog(@"%@",jsonString);
CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:@"OK"];
[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
在js文件中:
getTextData: function (successCallBack, errorCallBack){
cordova.exec(successCallBack, errorCallBack, "MyData", "getTextData", []);
}
在这篇文章中,我找到了解决问题的方法: https://stackoverflow.com/a/24906634/4116026
我将这两行添加到cordova.js的底部:
var exec = cordova.require('cordova/exec');
exec.setJsToNativeBridgeMode(exec.jsToNativeModes.IFRAME_NAV);
完美无缺! 谢谢大家