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" に変更すると、アラート ボックスは正常になり、戻り値を取得できます。しかし、NSArray 値の場合は、任意の結果を得ることができます。助けてください。