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互相调用相关推荐

  1. Android开发之android与JS互调 | Android与H5互调(附源码)

    我们先看下JS代码: <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...

  2. 如何在页面调用JS函数的代码

    如何在页面调用JS函数的代码 这个所有的人都不能回复啊,只有一个人可以的,晕!我第一次发现JS的功能有"打下来",呵呵! 言归正传: 下面是一个很简单的例子: 首先写一个JS函数, ...

  3. 调用招商银行接口(手把手教程,附调用接口工具类)

    手把手教你调用招商银行接口 一.下载示例代码 二.申请测试环境.或者生产环境加入到示例代码 三.调用招商银行接口参数拼装 四.调用接口测试 五.最后,贴上我自己改造过的工具类 1.这是获取银行环境参数 ...

  4. android和js交互的代码,Android与JS代码交互

    现如今,很多Android APP都要与JS进行交互,而WebView就是Android与JS交互的桥梁,日常中最常见Android和JS交互有:APP注册协议,APP里的文章,APP里的活动页,这都 ...

  5. android调用web接口,Android调用webservice 接口

    以查询手机号码归属地的Web service为例,它的wsdl为 1 在Android项目中导入??Ksoap2-android jar第三方jar包?? 2 Activity代码 public cl ...

  6. 调用支付宝接口android最新,Android 外接sdk之支付宝

    支付宝开放平台 最新sdk可以访问开放平台进行下载. 以下为流程和注意事项. 1.名词简介 请求    手机客户端以字符串形式把需要传输的数据发送给接收方的过程. 返回     支付宝以字符串形式直接 ...

  7. android调用web接口,Android调用WebService系列之请求调用

    好久没写博客,快有3年了.当初想在CTO把自己的技术文章一直延续,可却没有坚持! 开发Android网络App,通讯方式决定了你App所需的能力! 最近正在用Web Service进行通讯,那么就让我 ...

  8. android webview js 失效,Android WebView注入JQuery、JS脚本及执行无效的问题解决

    在项目中遇到JQuery注入后,执行无效的问题. 我们知道必须在网页加载完成后,也就是在onPageFinished()方法被调用后才能执行被注入的JS. 但是在有些手机上并不能成功执行,我的解决方案 ...

  9. android实现runnable接口,Android中实现Runnable接口简单例子

    本课讲的是如何实现一个Runnable,在一个独立线程上运行Runnable.run()方法.Runnable对象执行特别操作有时叫作任务. Thread和Runnable都是基础的类,靠他们自己,能 ...

最新文章

  1. 保持图片和图片框一致的方法 收藏
  2. AI学习---卷积神经网络
  3. React 等框架使用 index 做 key 的问题
  4. 3天内构建Facebook Web应用的经验之谈
  5. (139)FPGA面试题-FPGA设计中的速度和面积互换原则
  6. 浅谈UWB室内定位(二)
  7. Java8 Base64
  8. 陈纪修 数学分析,上下册
  9. maxscript编辑器脚本高亮显示
  10. vue使用lodop打印控件实现浏览器兼容打印
  11. ObjectiveC基础教程(第2版)
  12. 【文献研究】国际班轮航运的合作博弈:The coopetition game in international liner shipping
  13. Android可达性分析,基于时间距离的机会网络可达性分析及应用
  14. 电商宝:做最懂电商卖家的财务管理“小秘书”
  15. Elasticsearch 7.10 之 Indexing pressure
  16. knn matting matlab,一键抠图,毛发毕现:这个GitHub项目助你快速PS
  17. 【微信小程序】车位在线销售平台(三)
  18. 世界文明史2019尔雅满分答案
  19. 你的颈椎还好吗?得了颈椎病,不妨试试这几个方法
  20. Neither --kubeconfig nor --master was specified. Using the inClusterConfig. This might not work

热门文章

  1. A Business Creed 《职业信条》
  2. CSS 渐变与文本格式化
  3. qt界面最大化-实现在软件所在的显示器最大化和还原窗口大小
  4. python操作题库及答案_中国大学慕课mooc2020用Python玩转数据题库及答案
  5. Android最新敲诈者病毒分析及解锁(11月版)
  6. 修改手机WIFI的MAC地址,实现防止路由器拉黑
  7. Python内存模型
  8. 移远EC20 Opencpu方案调试记录 - 摄像头ffmpeg抓拍图片 ftp上传服务器 源码(郑州新正圆)
  9. 软文创意18招之一:挖历史
  10. 众志成城,共克时艰:GitHub惊现武汉防疫信息收集项目