android WebView(四)与html交互_html/css_WEB-ITnose
程序员文章站
2022-04-25 08:57:47
...
WebView如何与html相互交互
很多时候WebView需要和html进行交互,要么需要通过Java代码控制页面活动,要么就是通过js触发Java代码,WebView提供了中机制。
首先来看一下我们需要交互的html代码吧:
简单的html代码,三行文字,一个按钮。document.body.innerHTML就是获取html中body节点中的内容。
然后我们把它加载进来,并开启js:
在上面的html中按钮的点击事件使用了一个借口:window.handler。要想使用这个借口我们需要先定义一下:
函数public void show(String data)就是这个借口提供的,上面的html和Java代码都有调用过。但是WebView怎么才能知道有这
么一个借口可以调用呢?答案如下:
很多时候WebView需要和html进行交互,要么需要通过Java代码控制页面活动,要么就是通过js触发Java代码,WebView提供了中机制。
首先来看一下我们需要交互的html代码吧:
MyHtml.html
大家晚上好
大家晚上好
大家晚上好
简单的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");
这句话就是用来绑定接口的。
运行结果如下:
上一篇: mysql各个字段的详细解说_MySQL
下一篇: mysql自动备份一系列问题_MySQL
推荐阅读
-
HTML与CSS入门--第四章 理解层叠样式表_html/css_WEB-ITnose
-
html 使用表单标签,与用户交互_html/css_WEB-ITnose
-
Android Webview 加载外部html时选择加载本地的js,css等资源文件_html/css_WEB-ITnose
-
html 使用表单标签,与用户交互_html/css_WEB-ITnose
-
Android 有关 WebView 的一些使用方法_html/css_WEB-ITnose
-
unity游戏开发之服务器与客户端或页面流转之自定义交互事件_html/css_WEB-ITnose
-
C#中HTML页面如何与数据库交互_html/css_WEB-ITnose
-
Android 有关 WebView 的一些使用方法_html/css_WEB-ITnose
-
android重写webview长按时选择文字然后点击搜索按钮的事件,默认是chrome接受点击事件,现在跳转到360搜索页面_html/css_WEB-ITnose
-
HTML与CSS入门--第四章 理解层叠样式表_html/css_WEB-ITnose