把以前的知识都忘了 现在重新温习
package com.ccb.javascript;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.Button;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 获取webView 控件
final WebView webview = (WebView) findViewById(R.id.webview);
// 加上这句话才能使用javascript方法
webview.getSettings().setJavaScriptEnabled(true);
// webview.loadUrl("http://128.128.191.62/cn/mobile/geturl.html");
// 加载assets目录下面的demo.html 界面
webview.loadUrl("file:///android_asset/demo.html");
Button button = (Button) findViewById(R.id.button); // 获取button控件
// 即"调用html中的js方法"
// 按钮
// 给button添加事件响应,执行JavaScript的fillContent()方法
button.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
Log.d("MainActivity", "button OnClick");
webview.loadUrl("javascript:updateHtml()");
}
});
Button button1 = (Button) findViewById(R.id.button1);// 获取button1控件
// 即"重新加载html "按钮
// 给button添加事件响应,执行JavaScript的fillContent()方法
button1.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
Log.d("MainActivity", "button1 OnClick");
webview.loadUrl("http://128.128.191.62/cn/mobile/geturl.html");
// return
}
});
// 增加接口方法,让html页面调用 这里把整个Activity 注射为了login
webview.addJavascriptInterface(this, "login");
// 把JavaScriptInterface 映射为login
webview.addJavascriptInterface(new JavaScriptInterface(), "login");
}
private class JavaScriptInterface {
public void startFunction() {
AlertDialog.Builder ab = new AlertDialog.Builder(MainActivity.this);
ab.setTitle("提示");
ab.setMessage("通过js 调用了 java 中的方法");
ab.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
ab.create().show();
}
}
public void startFunction() {
AlertDialog.Builder ab = new AlertDialog.Builder(MainActivity.this);
ab.setTitle("提示");
ab.setMessage("通过js 调用了 java 中的方法");
ab.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
ab.create().show();
}
}
<html>
<head>
<script type="text/javascript">
function updateHtml() {
document.getElementById("content").innerHTML = "你通过 android 中的控件调用了html 中js 的方法";
alert("dialog");
}
</script>
</head>
<body>
this is my html 这里的login是在java中映射的对象
<a onClick="window.login.startFunction()" href="";>调用java中个的方法</a>
<span id="content"></span>
</body>
</html>