使用cordova 2.6,我使用cordova.exec调用插件。 问题是,如果在java端传递数组元素中传递的参数(从某些字符的末尾截断)。 但如果我传递一个简单的字符串作为参数,那么它就会完全正常传递。
在字符串中传递了5714个字符并且没有任何字符,但是在数组的第一个元素中传递450个字符就是将数组切割成原始长度的约1/4(119)。
然后尝试了以下内容:
将第一个数组元素转换为字符串。(使用javascript检查typeof)并通过但没有帮助。
创建了原始数组的子字符串,并将静态限制传递给子字符串,即子字符串(0,4000)等,但没有运气。
- 醇>
复制了原始数组并重复了第1步和第2步,但又没有运气。
有人可以告诉我问题在哪里吗?
增加了eclipse堆内存并改为cordova 2.8.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,之后无法获得更多。插入=的方式和位置。