首页 关于Android中Java与Javascript之间的传值研究

关于Android中Java与Javascript之间的传值研究

举报
开通vip

关于Android中Java与Javascript之间的传值研究Android中提供的WebView的功能不可谓不强大,并且WebView对于Javascript也能够很好的支持,Google官网也提供了在WebView中如何实现的Java和JavaScript的互相访问。来看一下源代码:1WebViewDemo.java文件:publicclassWebViewDemoextendsActivity{privateWebViewmWebView;privateHandlermHandler=newHandler();publicvoidonCreate(Bundleicicl...

关于Android中Java与Javascript之间的传值研究
Android中提供的WebView的功能不可谓不强大,并且WebView对于Javascript也能够很好的支持,Google官网也提供了在WebView中如何实现的Java和JavaScript的互相访问。来看一下源代码:1WebViewDemo.java文件:publicclassWebViewDemoextendsActivity{privateWebViewmWebView;privateHandlermHandler=newHandler();publicvoidonCreate(Bundleicicle){super.onCreate(icicle);setContentView(R.layout.webviewdemo);mWebView=(WebView)findViewById(R.id.webview);WebSettingswebSettings=mWebView.getSettings();webSettings.setJavaScriptEnabled(true);mWebView.addJavascriptInterface(newObject(){publicvoidclickOnAndroid(){mHandler.post(newRunnable(){publicvoidrun(){mWebView.loadUrl("javascript:wave()");}});}},"demo");mWebView.loadUrl("file:///android_asset/demo.html");}}来 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 一下这段代码:WebSettingswebSettings=mWebView.getSettings();webSettings.setJavaScriptEnabled(true);首先生成一个WebSettings对象,其次setJavaScriptEnabled(true);通过这句声明使WebView能够支持JavaScript脚本。紧接着mWebView.addJavascriptInterface这句,这个方法的原型如下:addJavascriptInterface(Objectobj,StringinterfaceName),该方法将一个java对象绑定到一个javascript对象中,而这个javascript对象的名字就是第二个参数interfaceName。这样在WebView进行初始化以后,就可以通过window.interfaceName来访问Java对象了。这里的interfaceName就是Demo。第一个参数则是个初始化了一个Java的类,注意这里的clickOnAndroid()方法,这里文档里是这样描述的TheJavaobjectthatisboundrunsinanotherthreadandnotinthethreadthatitwasconstructedin.也就是说addJavascriptInterface这里要绑定的类新申请了个进程来处理,这个是需要注意的地方,因此这也是使用了Handler的目的。mWebView.loadUrl("file:///android_asset/demo.html");这句话是加载了本地的demo.html页面,这个页面是存放在 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 的assets下的,为了让WebView从apk文件中加载assets,AndroidSDK提供了一个schema,前缀为"file:///android_asset/"。WebView遇到这样的schema,就去当前包中的assets目录中找 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 。如上面的“file:///android_asset/demo.html”mWebView.loadUrl("javascript:wave()");这句话就是Java调用Javascript的函数了。这个wave()是在页面中的Javascript脚本中定义的。下面再来看看在demo.html中是怎样调用的Java函数的,下面是demo.html的代码<html><scriptlanguage="javascript">functionwave(){document.getElementById("droid").src="android_waving.png";}</script><body><aonClick="window.demo.clickOnAndroid()"><imgid="droid"src="android_normal.png"/><br>Clickme!</a></body></html>其中wave()是被Java程序调用的。<aonClick="window.demo.clickOnAndroid()">通过点击来调用window.demo.clickOnAndroid()函数,这样就调用了Java的clickOnAndroid()方法。这样,通过上面的例子可以看出,实现Java和Javascript之间的交互是比较容易的,下面再来看看如何实现Java和Javascript的传值。基本上传值的主要思路就是通过函数的参数来进行的,把上面例子进行了修改,将函数加了参数,看修改后如下:publicvoidclickOnAndroid(finalStringstr)在这个函数添加了一个String的参数,在HTML里的调用改为如下即可:window.demo.clickOnAndroid(str)其中参数str可以在调用以前设置好varstr=1234567890,任意一个值或者是你自己需要得到的页面中的某一个值。这样就实现了JavaScript向Java传值。那么Java向JavaScript传值也是采用的函数参数的方式,看一下HTML中的改动:functionwave(str)在Java中也需要做些改动,mWebView.loadUrl("javascript:wave(‘"+str+"’)");中间的str是String类型,将需要传给JavaScript的值放入其中。这样就实现了Java向JavaScript的传值过程。
本文档为【关于Android中Java与Javascript之间的传值研究】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_175517
暂无简介~
格式:doc
大小:20KB
软件:Word
页数:0
分类:互联网
上传时间:2012-06-03
浏览量:13