cordova.exec参数中的奇怪行为

时间:2013-06-15 12:13:45

标签: java android plugins cordova

使用cordova 2.6,我使用cordova.exec调用插件。 问题是,如果在java端传递数组元素中传递的参数(从某些字符的末尾截断)。 但如果我传递一个简单的字符串作为参数,那么它就会完全正常传递。

  

在字符串中传递了5714个字符并且没​​有任何字符,但是在数组的第一个元素中传递450个字符就是将数组切割成原始长度的约1/4(119)。

然后尝试了以下内容:

  
      
  1. 将第一个数组元素转换为字符串。(使用javascript检查typeof)并通过但没有帮助。

  2.   
  3. 创建了原始数组的子字符串,并将静态限制传递给子字符串,即子字符串(0,4000)等,但没有运气。

  4.   
  5. 复制了原始数组并重复了第1步和第2步,但又没有运气。

  6.   

有人可以告诉我问题在哪里吗?

  

增加了eclipse堆内存并改为cordova 2.8.1,但结果相同。 :(

1 个答案:

答案 0 :(得分:0)

我明白了这种行为。检查了许多图像,并在我的插件执行方法中执行了以下操作:

int myLength = args.getString(0).length();
Log.v(TAG,Character.toString(args.getString(0).charAt(myLength-1)));

在插件/ java端获得 = 字符。并且在其末尾的base64字符串中插入了一个=。似乎cordova正在base64string中插入这些分隔符。

  

P.S。 :通过phonegap.js,发现参数被打包为JSON.stringify,之后无法获得更多。插入=的方式和位置。