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>
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); } });
class Handler { public void show(String data) { new AlertDialog.Builder(WebViewActivity.this).setMessage(data).create().show(); } }
webView.addJavascriptInterface(new Handler(), "handler");