cordova.exec 参数中的奇怪行为

Posted

技术标签:

【中文标题】cordova.exec 参数中的奇怪行为【英文标题】:cordova.exec strange behaviour in parameters 【发布时间】:2013-06-15 12:13:44 【问题描述】:

使用cordova 2.6,我正在使用cordova.exec 调用插件。 问题是如果在数组元素中传递的参数正在java端被剪切(从末尾被一些字符截断)。 但是如果我将一个简单的字符串作为参数传递,它的传递就很好了。

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

然后尝试以下方法:

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

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

    克隆了原始数组并重复了第 1 步和第 2 步,但还是没有运气。

谁能告诉我问题出在哪里?

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

【问题讨论】:

【参考方案1】:

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

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

在插件/java 端将字符设置为 =。并在其末尾的 base64 字符串中插入一个 =。看来科尔多瓦正在将这些分隔符插入到 base64 字符串中。

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

【讨论】:

以上是关于cordova.exec 参数中的奇怪行为的主要内容,如果未能解决你的问题,请参考以下文章

当数组是函数参数时,矩阵乘法中的 Gcc 自动向量化奇怪行为

奇怪的网站行为 - 具有特定值的 GET 参数导致网站重定向到 403

cordova/exec 在流星项目中失败

使 cordova.exec 同步

Phonegap 2.1 cordova.exec 更新

cordova.exec 导致我的 Android 项目出现问题