安卓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中自定義類中的函數。