将大数据从 Android Activity 传输到 WebView Javascript
Transfer large data from Android Activity to WebView Javascript
我知道有很多相关的帖子,但没有一个包含明确的答案如何将大量数据从 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);
}
有什么可能的解决方案?
提前感谢您的回答或想法。
您可以尝试将数据保存到临时文件中,然后使用文件插件读取数据。但不确定这是否有任何限制。
或者您可以创建自己的 JS 函数来 return 数据:
//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();
我知道有很多相关的帖子,但没有一个包含明确的答案如何将大量数据从 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);
}
有什么可能的解决方案?
提前感谢您的回答或想法。
您可以尝试将数据保存到临时文件中,然后使用文件插件读取数据。但不确定这是否有任何限制。
或者您可以创建自己的 JS 函数来 return 数据:
//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();