我们知道在Android中,如果我们想获得JavaScript代码调用返回的结果,我们可以使用webview.evaluateJavascript()。例如:
webview.evaluateJavascript("1+2", new ValueCallback<String>() {
public void onReceiveValue(String value) {
//value should be 3
}
});但是,如何在调用evaluateJavascript的方法中进一步获得结果呢?例如:
public void myFunc() {
String s;
webview.evaluateJavascript("1+2", new ValueCallback<String>() {
public void onReceiveValue(String value) {
s = value; //This line is only for illustration, it is not syntactically correct
}
});
//Use s to do other things
}当然,上面的代码片段不起作用,但是有可能实现类似的功能吗?
谢谢!
发布于 2020-01-17 01:04:27
我这样做:
String js = "window.openDrawer();";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
mWebView.evaluateJavascript(js, new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
Log.i("MyApp", s);
}
});
}我不知道写'1+2‘是不是足够的javascript来获得返回值。您可能需要在javascript中声明函数,然后让该函数返回1+2的结果。
类似于:
String js = "func SumIt(int a, int b) { return (a + b); }; SumIt(1, 2);"https://stackoverflow.com/questions/59774052
复制相似问题