我在我的 ios 程序中使用了 cordova(phonegap) 框架。在本机 *.m 代码中,我想将 Array 对象返回给 javascript。代码是:
-(void)getDeviceInfo:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
{
unsigned char deviceInfo[30]={0};
sprintf(deviceInfo,"%s","aaabbb");
NSData* returnValue=[[NSData alloc]initWithBytes:deviceInfo length:7];
NSArray *jsResult = [NSArray arrayWithObjects:returnValue,nil];
CDVPluginResult *result;
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsArray:jsResult];
[self writeJavascript:[result toSuccessCallbackString:globalCallbackId]];
}
在javascript中,代码是:
function callGetDeviceInfo() {
HijackMgrPlugin.getDeviceInfo( deviceInfoResultHandler, nativePluginErrorHandler,null);
}
function deviceInfoResultHandler (result) {
alert("deviceInfo: \r\n");
//alert("deviceInfo: \r\n"+result );
}
function nativePluginResultHandler (result) {
alert("SUCCESS: \r\n"+result );
}
但是没有出现警告框。在我把返回值改成messageAsString:@"aabb",然后alert box就ok了,我就可以得到返回值了。但是当它是 NSArray 值时,我可以得到任何结果,请帮忙。