1

我在我的 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 值时,我可以得到任何结果,请帮忙。

4

0 回答 0