您的位置:首页 > 移动开发 > Android开发

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

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息