1.html代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta>
<title>Android/Javascript互调Demo</title>
<script type="text/javascript" language="javascript">
function callJavaScriptMethod()
{
document.getElementById("content").innerHTML = "Android 调用 Javascript 成功";
}
</script>
</head>
<body>
<div ><a onClick="window.demo.callJavaMethod()" href="">点击-->JS调用Android代码</a></div>
<div style="margin:50px 50px 50px 50px;" id="content"></div>
</body>
</html>
2.xml布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/androidCallJSBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="点击 Android 调用 JavaScript"/>
</LinearLayout>
3.Activity测试代码
package com.testwebview;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
private WebView mWebView;
private Button androidCallJSBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
@SuppressLint({ "JavascriptInterface", "SetJavaScriptEnabled" })
private void initView() {
mWebView = (WebView) findViewById(R.id.webview);
WebSettings mWebSettings = mWebView.getSettings();
mWebSettings.setJavaScriptEnabled(true); //加上这句话才能使用javascript方法
mWebView.addJavascriptInterface(new Object() {//增加接口方法,让html页面调用
public void callJavaMethod() {
Toast.makeText(getApplicationContext(), "JS调用Android成功", Toast.LENGTH_LONG).show();
}
}, "demo");
mWebView.loadUrl("file:///android_asset/demo.html"); //加载页面
androidCallJSBtn = (Button) findViewById(R.id.androidCallJSBtn);
androidCallJSBtn.setOnClickListener(new Button.OnClickListener() { //给button添加事件响应,执行JavaScript的fillContent()方法
public void onClick(View v) {
mWebView.loadUrl("javascript:callJavaScriptMethod()");
}
});
}
}
4.效果图(依次是未调用前、android调用JS、JS调用android)
demo地址:http://download.csdn.net/detail/zz7zz7zz/6389669