Android webview中JavaScript与Java方法的相互调用Demo
2016-04-21 16:53
926 查看
阅读博客前,希望大家对webview有一定了解,此博客只解决JavaScript和Java之间的相互调用。意义:JavaScript和java语言彼此可以利用对方的方法,彼此可以互传数据
test.html代码:
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <script type="text/javascript"> function writeHello(){ document.write("<h1>Hello World!</h1>"); } </script> <h1>头部</h1> </head> <body > <h2 id="h2">体部</h2> </body> </html>1、webview调用html中的JavaScript代码(1) 首先保证webview支持JavaScript
webView.getSettings().setJavaScriptEnabled(true);(2)加载静态本地页面地址或网页地址
webView.loadUrl("file:///android_asset/test.html");(3)调用test.html中writeHello方法
webView.loadUrl("javascript: writeHello()");
2、html调用java中的方法
(1) 首先创建一个类JsToJava.java,并实现你要的逻辑test(),但需注意test()作为js要调用的方法需用
@JavascriptInterface标注
(2)通过webView.addJavascriptInterface(new JsToJava(), "jsToJava");
方法向html映射JsToJava类的对象jsToJava,使js中产生对象jsToJava,通过window内置对象即可 调用
(3)在html的script中通过window.jsToJava.test()完成调用,
<head><meta charset="utf-8"><script type="text/javascript">function writeHello(){window.jsToJava.test();<--调用jsToJava对象的test()方法!-->document.write("<h1>Hello World!</h1>");}</script><h1>头部</h1></head>
3、通过传参完成数据传递
(1)webview给js传参:webView.loadUrl("javascript: writeHello('111')";
(2)js调用java方法并传参:window.jsToJava.test("abc");
在java调用的js方法中再调用java对象的方法可完成数据的java运算处理-->js运算处理-->java的运算过程
<html><head><meta charset="utf-8"><script type="text/javascript">function writeHello(ms){window.jsToJava.test("abc"+ms);document.write("<h1>Hello World!</h1>");}</script><h1>头部</h1></head><body ><h2 id="h2">体部</h2></body></html>案例Demo下载地址:http://download.csdn.net/detail/nmyangmo/9868276
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题