将大型数据从Android Activity传输到WebView Javascript

时间:2015-09-02 12:00:26

标签: javascript android webview data-transfer

我知道有很多相关的帖子,但是它们中没有包含明确的答案如何将大量数据从Android传输到JS,反之亦然。问题是当我尝试这样做时,在JS端,字符串被剪切并且它不完整。在这一行之后,我只得到Javascript端的部分字符串

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
    webView.evaluateJavascript("javascript: " + jsToExecute, null);
} else {
    webView.loadUrl("javascript: " + jsToExecute);
}

对此可能有什么解决办法?

提前感谢您的答案或想法。

1 个答案:

答案 0 :(得分:0)

您可以尝试将数据保存到临时文件中,然后使用File插件读取数据。但不确定这是否有任何限制。

或者你可以创建自己的JS函数来返回数据:

//this is an Activity
this.appView.addJavascriptInterface(new MyJsHandler(this), "myHandler");

private class MyJsHandler {

    private CordovaActivity activity;

    public MyJsHandler(CordovaActivity activity) {
        this.activity = activity;
    }

    @SuppressWarnings("unused")
    @JavascriptInterface
    public String getData() {
        if (this.activity.data) {
            return this.activity.data;
        }
        return "";
    }
}

在JavaScript中:

var data = window.myHandler.getData();