android WebView (4) html_html/css_WEB-ITnose との対話

WBOY
リリース: 2016-06-24 11:46:34
オリジナル
1272 人が閲覧しました


WebView が HTML と対話する方法
多くの場合、WebView は、Java コードを通じてページのアクティビティを制御するか、WebView が提供する JS を通じて Java コードをトリガーすることによって、HTML と対話する必要があります。

まず、操作する必要がある 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 コード、3 行のテキスト、および 1 つのボタン。 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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!