android调用js接口,Android代码和JavaScript互相调用
WebView加载一个使用JavaScript的网页,并且要实现相互之间的调用,需要启用WebView对JavaScript的支持,一旦启用之后你就可以通过接口来实现本地代码和JavaScript代码的互相调用。
1.启用JavaScript支持WebView默认是禁用JavaScript的,你可以通过附加到WebView的设置类WebSettings开启它。通过getSettings()函数获取WebView的WebSettings对象,然后你可以调用setJavaScriptEnabled()函数开启对JavaScript的支持。例如:WebViewmyWebView=(WebView)findViewById(R.id.webview);WebSettingswebSettings=myWebView.getSettings();webSettings.setJavaScriptEnabled(true);
2.JavaScript调用Android代码当针对Android应用设计网页时,你可以通过一个接口实现JavaScript调用Android本地代码完成一些平台特有的功能。例如,JavaScript可以调用Android中的代码来生成一个Toast。你可以通过addJavaScriptInterface()方法传入一个用来绑定JavaScript的对象和一个用来规范JavaScript访问的接口名(类似命名空间)。
在这个例子中,WebAppInterface类允许网页通过showToast()方法发送一个Toast消息。然后调用WebView的addJavaScriptInterface()方法把这个类和JavaScript绑定在一起,传入"Android"作为接口名。例如:WebViewwebView=(WebView)findViewById(R.id.webview);webView.addJavascriptInterface(newWebAppInterface(this),"Android");上面的代码创建了一个名为"Android"的接口。这时,网页应用就可以通过这个"Android"接口访问WebAppInterface里的方法了。例如,下面有段HTML和JavaScript的代码,当用户点击按钮,通过调用绑定的接口里的方法来创建一条Toast消息。
functionshowAndroidToast(toast){
Android.showToast(toast);
}
这里不需要手动初始化"Android"接口,WebView会自动完成初始化工作。所以,点击按钮时,showAndroidToast()方法使用"Android"接口调用了WebAppInterface.showToast()方法。注意:和JavaScript绑定的对象,运行在其他线程中而不是运行在构造它的线程(访问AndroidUI时需特别注意)。警告:如果你的targetSdkVersion设置成17或者更高,必须为所有你希望对JavaScript有效的方法添加一个@JavascriptInterface注解(必须都是public方法)。如果你没有提供这个注解,那么在Android4.2或更高系统版本上,JavaScript就无法访问这些方法。
3.Android本地调用JavaScript代码不仅仅JavaScript可以调用Android本地的代码,WebView也提供了在Android本地调用JavaScript方法的功能。例如,下面有段HTML和JavaScript的代码,调用他会在网页中插入一行文字。
functionshow(content){
document.getElementById("content").innerHTML="这是我的JavaScript调用,这是:"+content;
}
在Android本地调用JavaScript的方法非常简单,只需要一行代码,如下:WebView.loadUrl("javascript:show('Android传过来的数据')"
举报/反馈
android调用js接口,Android代码和JavaScript互相调用相关推荐
- Android开发之android与JS互调 | Android与H5互调(附源码)
我们先看下JS代码: <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...
- 如何在页面调用JS函数的代码
如何在页面调用JS函数的代码 这个所有的人都不能回复啊,只有一个人可以的,晕!我第一次发现JS的功能有"打下来",呵呵! 言归正传: 下面是一个很简单的例子: 首先写一个JS函数, ...
- 调用招商银行接口(手把手教程,附调用接口工具类)
手把手教你调用招商银行接口 一.下载示例代码 二.申请测试环境.或者生产环境加入到示例代码 三.调用招商银行接口参数拼装 四.调用接口测试 五.最后,贴上我自己改造过的工具类 1.这是获取银行环境参数 ...
- android和js交互的代码,Android与JS代码交互
现如今,很多Android APP都要与JS进行交互,而WebView就是Android与JS交互的桥梁,日常中最常见Android和JS交互有:APP注册协议,APP里的文章,APP里的活动页,这都 ...
- android调用web接口,Android调用webservice 接口
以查询手机号码归属地的Web service为例,它的wsdl为 1 在Android项目中导入??Ksoap2-android jar第三方jar包?? 2 Activity代码 public cl ...
- 调用支付宝接口android最新,Android 外接sdk之支付宝
支付宝开放平台 最新sdk可以访问开放平台进行下载. 以下为流程和注意事项. 1.名词简介 请求 手机客户端以字符串形式把需要传输的数据发送给接收方的过程. 返回 支付宝以字符串形式直接 ...
- android调用web接口,Android调用WebService系列之请求调用
好久没写博客,快有3年了.当初想在CTO把自己的技术文章一直延续,可却没有坚持! 开发Android网络App,通讯方式决定了你App所需的能力! 最近正在用Web Service进行通讯,那么就让我 ...
- android webview js 失效,Android WebView注入JQuery、JS脚本及执行无效的问题解决
在项目中遇到JQuery注入后,执行无效的问题. 我们知道必须在网页加载完成后,也就是在onPageFinished()方法被调用后才能执行被注入的JS. 但是在有些手机上并不能成功执行,我的解决方案 ...
- android实现runnable接口,Android中实现Runnable接口简单例子
本课讲的是如何实现一个Runnable,在一个独立线程上运行Runnable.run()方法.Runnable对象执行特别操作有时叫作任务. Thread和Runnable都是基础的类,靠他们自己,能 ...
最新文章
- 保持图片和图片框一致的方法 收藏
- AI学习---卷积神经网络
- React 等框架使用 index 做 key 的问题
- 3天内构建Facebook Web应用的经验之谈
- (139)FPGA面试题-FPGA设计中的速度和面积互换原则
- 浅谈UWB室内定位(二)
- Java8 Base64
- 陈纪修 数学分析,上下册
- maxscript编辑器脚本高亮显示
- vue使用lodop打印控件实现浏览器兼容打印
- ObjectiveC基础教程(第2版)
- 【文献研究】国际班轮航运的合作博弈:The coopetition game in international liner shipping
- Android可达性分析,基于时间距离的机会网络可达性分析及应用
- 电商宝:做最懂电商卖家的财务管理“小秘书”
- Elasticsearch 7.10 之 Indexing pressure
- knn matting matlab,一键抠图,毛发毕现:这个GitHub项目助你快速PS
- 【微信小程序】车位在线销售平台(三)
- 世界文明史2019尔雅满分答案
- 你的颈椎还好吗?得了颈椎病,不妨试试这几个方法
- Neither --kubeconfig nor --master was specified. Using the inClusterConfig. This might not work