我在将一些数据从 JavaScript 传递到小程序时遇到问题。我认为数据的大小太大(字符串中有 1800 万个字符)无法通过 LiveConnect 传递。
我把代码示例放在下面:
JavaScript:
var bigData = generateSomeBigData(18000000); // string contaning 18 000 000 characters
applet.Execute(bigData); // no error
小程序:
public void Execute(String data) {
this.doSomethingWithData(data); // data is null
}
我在 java 控制台或 javascript 代码中没有收到任何错误或异常。
我试过用更大的堆运行小程序,但没有帮助。
... <param name="java_arguments" value="-Xmx128m" /> ...
唯一的问题是我得到的是
null
而不是包含字符串的数据,它不依赖于浏览器(FF、Chrome)。 最佳答案
我解决了这个问题。我将数据生成移动到服务器站点,并使用 one time self destructing link
将数据传递给小程序。小程序可以下载不再可用的信息,并返回结果。
这里有一个例子:
服务器:
String bigData = this.generateBigData(18000000);
String linkToData = this.getOneTimeLink(bigData);
JavaScript:
applet.Execute(linkToBigData);
小程序:
public void Execute(String link) {
String data = this.downloadData(link);
this.doSomethingWithData(data); // data is not null ;)
}
2015 年 5 月 11 日编辑:
也许您需要对一次破坏链接的小解释。我使用它是因为它是我项目的另一个要求,但没有必要实现解决方案。
关于java - 小程序调用中参数大小过大,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26542926/