WebView如何与html相互交互
很多时候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() {@Overridepublic 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");
登录后复制
这句话就是用来绑定接口的。
运行结果如下:
立即学习“前端免费学习笔记(深入)”;
立即学习“前端免费学习笔记(深入)”;
立即学习“前端免费学习笔记(深入)”;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3101183.html