【问题标题】:Transfer large data from Android Activity to WebView Javascript将大数据从 Android Activity 传输到 WebView Javascript
【发布时间】:2015-11-27 22:17:12
【问题描述】:

我知道有很多相关的帖子,但没有一个包含明确的答案,如何将大量数据从 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);
}

对此有什么可能的解决方案?

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

【问题讨论】:

    标签: javascript android webview data-transfer


    【解决方案1】:

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

    或者你可以创建自己的 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();
    

    【讨论】:

    • 我试过第二个版本从 JS 调用 Java 来检索一些数据,没有像相反的方式那样有限制。关于文件,不确定性能。无论如何,谢谢你的想法。
    猜你喜欢
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 2013-11-04
    • 2013-07-26
    • 1970-01-01
    • 2017-04-05
    • 2020-12-12
    • 1970-01-01
    相关资源
    最近更新 更多