Heim >Web-Frontend >HTML-Tutorial >android WebView(四)与html交互_html/css_WEB-ITnose

android WebView(四)与html交互_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 11:46:341319Durchsuche


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

首先来看一下我们需要交互的html代码吧:

      <title>MyHtml.html</title>               <br>    <br>大家晚上好    <br>    <br>大家晚上好    <br>    <br>大家晚上好    <br>  <input type="button" value="测试" onclick="javascript:window.handler.show(document.body.innerHTML);">  


简单的html代码,三行文字,一个按钮。document.body.innerHTML就是获取html中body节点中的内容。
然后我们把它加载进来,并开启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");

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


运行结果如下:





Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn