Android高手进阶教程(二十)之---Android与JavaScript方法相互调用!

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用android方法,在这里我个人觉得有点和DWR相似。

为了让大家容易理解,我写了一个简单的Demo,具体步骤如下:

第一步:新建一个Android工程,命名为WebViewDemo(这里我在assets里定义了一个html页面)。

第二步:修改main.xml布局文件,增加了一个WebView控件还有Button控件,代码如下:

第三步:在assets目录下新建一个demo.html文件,代码如下(这里不知道为何多了mce:这几个东东,<script></script>这样是对的):

 

第四步:修改主核心程序WebViewDemo.java,代码如下:

第五步:运行上述工程,查看效果。

 

  

                        首界面                                           点击按钮时,html内容改变

   点击html的startGoogleMap启动地图应用

Android WebView 的 addJavascriptInterface 探究 Java和JS交互的方式有多种,这里探讨的方式是通过以下方式进行的交互。这篇文章是想弄明白 JavaScript 和 Java是如何实现这种方式互调的,就从源码角度开始分析。 阅读详情

相关推荐

Android:如何使用addJavaScriptInterface

说明 本文将和大家分享Android中的 addJavaScriptInterface方式。这个类主要能帮助调用你的JavaScript函数中的任意活动方式。其中有如下一些需要注意的地方: addJavaScriptInterface方式帮助我们从一个网页传递值到Android XML视图(反之亦然)。 你可以从网页调用你的活动类方式(反之亦然)。 这是一个非常有用的功能,而当WebV...

weixin_33763244的博客 543

Android:是时候掌握WebViewJs的交互技术了

为什么很多程序员做不了架构师?1、良好健康的职业规划很重要,但大多数人都忽略了2、学习的习惯很重要,持之以恒才是正解。3、编程思维没能提升一个台阶,局限在了编码,业务,没考虑过选型、扩展4、身边没有好的架构师引导、培养。所处的圈子对程序员的成长影响巨大。金九银十面试季,跳槽季,整理面试题已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。

2401_84166278的博客 1008

Android WebView 中实现和 JavaScript 的互操作

有两个参数。其中 object 即需要提供给 js 调用的对象。在 Android 4.1.2 (API 16) 以下时,js 可以调用该对象的所有公开方法;在 Android 4.2 (API 17)以上时, js 只能调用添加了注解的公开方法。之所以会有这样的改动,是因为在 API 16 之前可以调用所有公开方法具有安全隐患,例如可以利用 jave 的反射机制实现任意命令的执行。interfaceName 即 js 调用时的接口名称。我们可以通过 webview 的。

sinat_17133389的博客 2349

android addjavascriptinterface 漏洞,解决android4.2以下addJavaScriptInterface不安全问题

问题描述android js和原生互相调用会产生安全问题,WebView addJavaScriptInterface 远程代码执行漏洞概述Android 系统通过WebView.addJavascriptInterface 方法注册可供JavaScript 调用的Java 对象,以用于增强JavaScript 的功能。但是系统并没有对注册Java 类的方法调用的限制。导致攻击者可以利用反射机制调...

weixin_32534669的博客 1006

JS中调android方法

特别注意的是在onclick事件的时候,window.android.finishClose()如上:一定要在方法名前面加上window.android.@OverrideinitView();不要忘记加权限哦!!!WebViewSettingUtil对WebView进行简单的包裹(这里是我做支付的时候用到的demo所以写的多了一点,正常是没有这么多的!!!= null) {//不使用缓存@Override。

2401_84148974的博客 938

vue中jsAndroid,iOS互相调用,以及传参

最近做的一个项目,基本上是抛弃了原生,整个app就是一个webview,web不能实现的功能,就需要和app进行交互了。 需求来了,接下来要做的就是实现了,然后随手就把实现代码写出来了: Round 1 如图所示: 这里边有一个坑 点击取按钮后,会调用getValueForKey方法,然后js调用app定义好的getValueForKey方法,然后app的webview再调用js中定义的ge...

restver的博客 7065
上一篇: Android高手进阶教程(十九)之---Android开发中,使用线程应该注意的问题!
下一篇: Android中的资源与国际化!
Android_Tutor
博客等级 码龄17年 1万+粉丝 122原创
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值