上一篇文章讲到了关于js回调android中java代码的方法,既然有这个方法,那岂能没有android中WebView回调js的方法呢?今天我们就来学习一下关于android中WebView回调js代码的方法。废话不多说,直接看代码.
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>练习</title>
<script>
function javaCallHtmlStart(startCode){
document.getElementById("start").value=startCode;
}
function javaCallHtmlEnd(endCode){
document.getElementById("end").value=endCode;
}
</script>
</head>
<body>
<input type="button" id="start" value="start"/>
<input type="button" id="end" value="end"/>
</body>
</html>
MainActivity.java
package sharefor.wo.it.test;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.Button;
public class MainActivity extends Activity {
private WebView mWebView;
private WebSettings mSettings;//webView的handle
private Button mStart;
private Button mEnd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView=(WebView)findViewById(R.id.web);
mStart=(Button)findViewById(R.id.btn_start);
mEnd=(Button)findViewById(R.id.btn_end);
mSettings = mWebView.getSettings();
mSettings.setBuiltInZoomControls(true); // 启用界面上放大和缩小按钮
mSettings.setUseWideViewPort(true); // 启用双击放大, 双击缩小功能
mSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
mSettings.setDefaultTextEncodingName("utf-8");
mSettings.setJavaScriptEnabled(true);
mWebView.loadUrl("file:///android_asset/index.html");
mStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mWebView.loadUrl("javascript:javaCallHtmlStart(111111)");
}
});
mEnd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mWebView.loadUrl("javascript:javaCallHtmlEnd(222222)");
}
});
}
}
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:orientation="vertical"
android:layout_height="fill_parent"
>
<Button
android:layout_width="match_parent"
android:id="@+id/btn_start"
android:text="开始"
android:layout_height="wrap_content" />
<Button
android:layout_width="match_parent"
android:id="@+id/btn_end"
android:text="结束"
android:layout_height="wrap_content" />
<WebView
android:layout_width="match_parent"
android:id="@+id/web"
android:layout_height="match_parent"></WebView>
</LinearLayout>