android WebView(四)与html交互

本文探讨了Android中WebView与HTML内容如何实现双向交互,包括调用JavaScript接口和Java方法,为混合应用开发提供关键技术支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


WebView如何与html相互交互


很多时候WebView需要和html进行交互,要么需要通过Java代码控制页面活动,要么就是通过js触发Java代码,WebView提供了这种机制。

首先来看一下我们需要交互的html代码吧:
<!DOCTYPE html>
<html>
  <head>
    <title>MyHtml.html</title>
  </head>
  
  <body>
     
    <br>
    <br>大家晚上好
    <br>
    <br>大家晚上好
    <br>
    <br>大家晚上好
    <br>


  <input type="button" value="测试" onclick="javascript:window.handler.show(document.body.innerHTML);"  />
  </body>
</html>


简单的html代码,三行文字,一个按钮。document.body.innerHTML就是获取html中body节点中的内容。
然后我们把它加载进WebView中,并开启js:
	webView.loadUrl("file:///android_asset/MyHtml.html");
	webView.getSettings().setJavaScriptEnabled(true);
		
	webView.setWebViewClient(new WebViewClient() {
		@Override
		public void onPageFinished(WebView view, String url) {
			Toast.makeText(WebViewActivity.this, "网页加载完成", 0).show();
			view.loadUrl("javascript:window.handler.show(document.body.innerHTML);");
			super.onPageFinished(view, url);
		}
	});

在上面的html中按钮的点击事件使用了一个借口:window.handler。要想使用这个借口我们需要先定义一下:
	class Handler {
		public void show(String data) {
			new AlertDialog.Builder(WebViewActivity.this).setMessage(data).create().show();
		}
	}

函数public void show(String data)就是这个借口提供的,上面的html和Java代码都有调用过。但是WebView怎么才能知道有这
么一个借口可以调用呢?答案如下:
webView.addJavascriptInterface(new Handler(), "handler");

这句话就是用来绑定接口的。


运行结果如下:





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值