我在将一些数据从 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/

10-13 01:41