安卓4.4以前用类似这种调用js获得返回数据
webView.evaluateJavascript("getGreetings()", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
Log.i(LOGTAG, "onReceiveValue value=" + value);
}});
会报找不到这个方法的错误
在网上查了一些资料,可以通过调用js,然后js再调用java方法间接的获得值
myWebView.addJavascriptInterface(new JsInteration(), "control"); control为js调用java的入口?我也不知道确切意思,知道干嘛用的就行。JsIntertion为一个类
Class JsIntertion{
@JavascriptInterface
public void toastMessage(String message) {
Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
}
}
网页代码
<html>
<script type="text/javascript">
function sayHello() {
alert("Hello")
}
function alertMessage(message) {
alert(message)
}
function toastMessage(message) {
window.control.toastMessage(message)
}
function sumToJava(number1, number2){
window.control.onSumResult(number1 + number2)
}
</script>
Java-Javascript Interaction In Android
</html>
调用的话就webView.loadUrl("javascript:alertMessage(\"" + "content" + "\")");
最后会走java中自定义类中的函数。