设为首页 加入收藏

TOP

Android中webview和js之间的交互及注意事项
2014-11-24 08:10:19 来源: 作者: 【 】 浏览:0
Tags:Android webview 之间 交互 注意事项

Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true,,然后通过loadUrl就可以直接进行调用,如下所示:


mWebView.getSettings().setjava scriptEnabled(true);


mWebView.loadUrl("java script:test()");


2. 网页上调用android中java代码的方法


在网页中调用java代码,需要在webview控件中添加java scriptInterface。如下所示:


mWebView.addjava scriptInterface(new Object() {


public void clickOnAndroid() {


mHandler.post(new Runnable() {


public void run() {


Toast.makeText(Test.this, "测试调用java", Toast.LENGTH_LONG).show();


}


});


}


}, "demo");


在网页中,只需要像调用js方法一样,进行调用就可以。



3. Java代码调用js并传参


首先需要带参数的js函数,如function test(str),然后只需在调用js时传入参数即可,如下所示:


mWebView.loadUrl("java script:test('aa')");


4.Js中调用java函数并传参


首先一样需要带参数的函数形式,但需注意此处的参数需要final类型,即得到以后不可修改,如果需要修改其中的值,可以先设置中间变量,然后进行修改。如下所示:


mWebView.addjava scriptInterface(new Object() {


public void clickOnAndroid(final int i) {


mHandler.post(new Runnable() {


public void run() {


int j = i;


j++;


Toast.makeText(Test.this, "测试调用java" + String.valueOf(j), Toast.LENGTH_LONG).show();


}


});


}


}, "demo");


然后在html页面中,利用如下代码

,即可实现调用


注意:在html页面中,不支持css样式的伪类事件(即已被注释的代码)。


例如:


.zhantin01{width:1000px; height:492px; margin:0 auto;background:url(images/zt01.jpg) no-repeat 0 0; position:relative}
.zhantin01 a,.zhantin01 div{opacity:0.5; background-color:#f00; position:absolute;left:0;top:310px;width:40px; height:50px;}
.zhantin01 .zg01{width:100px; height:100px;}



/* .zhantin01 a:link,.zhantin01 a:visited{opacity:0;} */
/* .zhantin01 a:hover{opacity:0.5;} */
/* .zhantin01 a.point:link,.zhantin01 a.point:visited{opacity:0.5;} */


如果这样写,在html页面中将不能调用Android页面的java代码。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇U-Boot在nand flash中的前4k内容.. 下一篇Python标准库logging模块代码分析

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·About - Redis (2025-12-26 08:20:56)
·Redis: A Comprehens (2025-12-26 08:20:53)
·Redis - The Real-ti (2025-12-26 08:20:50)
·Bash 脚本教程——Li (2025-12-26 07:53:35)
·实战篇!Linux shell (2025-12-26 07:53:32)