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

4

0 に答える 0