> 웹 프론트엔드 > HTML 튜토리얼 > android WebView(四)与html交互_html/css_WEB-ITnose

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

WBOY
풀어 주다: 2016-06-24 11:46:34
원래의
1298명이 탐색했습니다.


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");
로그인 후 복사

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


运行结果如下:





원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿