Js与java的互相调用

把以前的知识都忘了 现在重新温习

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>

http://blog.51cto.com/ext/down_att.php?aid=35928&code=0219

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值