首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在棒棒糖和棉花糖上不调用WebView中的JavaScriptInterface

是指在Android系统版本为4.4(KitKat)及以上的设备上,由于安全性考虑,禁止了在WebView中通过JavaScriptInterface与Java代码进行交互的功能。

JavaScriptInterface是Android中的一个注解,用于将Java对象的方法暴露给WebView中的JavaScript调用。通过在Java对象的方法上添加@JavascriptInterface注解,可以使得这些方法可以被WebView中的JavaScript代码调用。

然而,在Android 4.4及以上的版本中,由于安全性问题,Google对WebView中的JavaScriptInterface做出了限制。默认情况下,WebView中的JavaScript无法直接调用Java对象的方法,以防止恶意网页通过JavaScriptInterface获取用户的敏感信息或执行恶意操作。

因此,在棒棒糖(Android 4.4)和棉花糖(Android 5.0)上,不调用WebView中的JavaScriptInterface是为了保护用户的安全和隐私。

在这种情况下,如果需要在WebView中实现JavaScript与Java代码的交互,可以通过以下方式替代:

  1. 使用WebView的evaluateJavascript()方法:该方法可以在WebView中执行JavaScript代码,并通过回调函数获取执行结果。可以通过在JavaScript中调用该方法,并将结果传递给Java代码来实现交互。
  2. 使用WebView的addJavascriptInterface()方法(仅适用于Android 4.2及以下版本):在Android 4.2及以下的版本中,可以使用addJavascriptInterface()方法将Java对象的方法暴露给WebView中的JavaScript调用。但需要注意的是,这种方式存在安全风险,因此在高版本的Android系统中被禁止使用。

总结起来,在棒棒糖和棉花糖上不调用WebView中的JavaScriptInterface是为了保护用户的安全和隐私,同时可以通过evaluateJavascript()方法或者addJavascriptInterface()方法(仅适用于Android 4.2及以下版本)来实现JavaScript与Java代码的交互。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JS & JAVA(Android) 的互相调用(简介)

document.getElementById("div").style.backgroundColor='red'; alert("My First JavaScript"); return "无敌棒棒糖...:"+value+javaInterface.onSumResult(1);; } 需要注意的是, 在Js中 function 是声明方法的关键字, 这个如果你懂...一定是要在你刚才addJavascriptInterface 方法中第一个参数类中的方法, 并且要添加 @JavascriptInterface 注解,用于表明这是一个供JS调用的方法; 接下来就是在JS...document.getElementById("div").style.backgroundColor='red'; alert("My First JavaScript"); return "无敌棒棒糖...2.将布局文件中的WebView修改为自定义的WebView 3.使用新的WebView调用方法,执行js方法获取返回值 自定义WebView如下 public String stringByEvaluatingJavaScriptFromString

80820
  • 业界 | 滚蛋吧~黑客君!

    黑客称该网站的用户有90%至95%都是男性。 谷歌新版系统命名为棉花糖。 8月17日,谷歌宣布新版系统名为“棉花糖”(Marshmallow),新增原生指纹识别和Doze省电模式等。...上一版本的“棒棒糖”存在安全漏洞,黑客只需发送短信便可入侵其他设备。 Facebook实习生曝漏洞被解雇。...近期,在Facebook实习的Aran Khanna利用Facebook Messenger定位服务的一个已知漏洞,追踪好友,并在地图上标出位置,定位精确度达到1米。...由于曝光了产品的隐私漏洞,Aran Khanna遭到Facebook的解雇。 黑客可窃取Android用户指纹。...D令牌——用心保障您的帐号安全 使用安心:即使其他网站帐号密码被盗,也无需担心黑客登陆您的DNSPOD帐号,安心。 验证放心:30秒随机生成6位动态数字验证码,保障安全,放心。

    23010

    Android 更新:新图标,新命名

    当地时间8月22日,在Android Police网站上David Ruddock爆出Android将会使用新的图标及命名规则,在即将发布的新版Android系统上。 ?...全新的Logo,依然沿用经典机器人,但在图标,颜色及细节上都有明显变动。新的设计是为了更加现代,更加易用。特别是文字从绿色改为了黑色,这样的变更对视觉障碍者更加友好。 ?...如果从09年的Cupcake算起,不算08年开始的alpha和beat测试版,到现在已经用了10年。 在新的版本中将打破甜品,零食的命名规则,可能改为Android 10。...David表示:“改变命名是为了避免全球不同地区的误解,某些语言里L和R是没有区分的。另外有些地方馅饼也不是甜点,棉花糖虽然味道不错,但是在世界上有很多地区是不受欢迎的食物。” ?...Lollipop 5.0-1(棒棒糖)-- 2014年10月15日 ? Marshmallow 6.0(棉花糖)-- 2015年9月30日 ?

    53720

    Android中Java和JavaScript交互

    Android中Java和JavaScript交互 Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本。...本文将介绍如何实现Java代码和Javascript代码的相互调用。 如何实现 实现Java和js交互十分便捷。通常只需要以下几步。...WebView开启JavaScript脚本执行 WebView设置供JavaScript调用的交互接口。 客户端和网页端编写调用对方的代码。...Android在4.4之前并没有提供直接调用js函数并获取值的方法,所以在此之前,常用的思路是 java调用js方法,js方法执行完毕,再次调用java代码将值返回。...如果你不这样做的话,在4.2以以后的平台上,网页无法访问到你的方法。

    1.5K60

    JSBridge小科普

    做Hybird APP开发的同学,应该对JSBridge不陌生,它用于H5页面和Native(Android或者iOS)通信。.../** * 添加javascriptInterface * 第一个参数:这里需要一个与js映射的java对象 * 第二个参数:该java对象被映射为js对象后在js里面的对象名,在js中要调用该对象的方法就是通过这个来调用...如,在 Webview 上添加 onJsConfirm或onJsPrompt 监听(其实,监听window.console或者window.alert也是可以的,但是这两个方法在JS coding中比较常用...Native调用Web函数 反之,如果Native需要主动调用JS的方法,又该怎么做呢? 很简单,只要 H5 将 JS 方法暴露在 Window 上给 Native 调用即可。...Android 4.4 以前,通过 loadUrl 方法,执行一段 JS 代码来实现(缺点是效率低,无法获得返回结果,且调用的时候会刷新 WebView): /** * js中声明全局函数 */ <

    2.8K30

    一文彻底搞懂安卓WebView白名单校验

    近两年公司端侧发现的漏洞很大一部分都出在WebView白名单上,针对这类漏洞安全编码团队也组织过多次培训,但是这种漏洞还是屡见不鲜。...只要在www.rebeyond.net这个攻击者服务器上放置/@.huawei.com/poc.htm这样一个文件,就可以绕过白名单调用JavaScriptInterface里的getToken了。...校验返回true的时候和调用JavascriptInterface getToken的时候,分别打印一条日志。...但是小A接到了另外一个需求:该APP需要和多家第三方公司合作,需要提供一些不包含敏感信息的接口给第三方H5页面调用。要求在JsObject中增加一个方法getUsername。...每一次shouldOverrideUrlLoading的时候都把新的URL传给JsObject中以备在JavascriptInterface中检测。

    4.8K40

    安卓入门(八)

    Android 1.6:Donut:甜甜圈,Android 2.0/2.0.1/2.1:Eclair:松饼,Android 2.2/2.2.1:Froyo:冻酸奶到Android 5.0:Donut:棒棒糖到现在...Anroid5.0:2014年11月3日发布,命名Lollipop(棒棒糖)。 Anroid6.0:2015年5月28日发布,命名Marshmallow(棉花糖)。...Linux内核,就是驱动,我们调用系统驱动来实现功能。...最初安卓是在Eclipse上开发的,但是现在都在Eclipse上了,现在Eclipse只是做练习用的,看到有人说如何用Eclipse搭建,我之前搭建过一次,后来觉得Android studio这款比较牛逼...然后我又把Eclipse配置好的删了,之后就搭建不上了,查了结果说已经不推荐了,是看博客的哦 SDK 对于SDK,是。。。 看到图了吧,你懂的,可以试试,对于SDK中我们了解一下吧!

    58320

    WebView三问—B站真题

    Object { // 定义JS需要调用的方法 // 被JS调用的方法必须加入@JavascriptInterface注解 @JavascriptInterface...test.hello("js调用了android中的hello方法"); } 这种方法虽然很好用,但是要注意的是4.2以后,对于被调用的函数以@JavascriptInterface进行注解...().equals("webview")) { System.out.println("js调用了Android的方法"); // 可以在协议上带有参数并传递到...最后就是app中的网页框架要统一,这样就可以对js进行缓存和复用。 这里有美团团队的总结方案,如下: WebView初始化慢,可以在初始化同时先请求数据,让后端和网络不要闲着。...后端处理慢,可以让服务器分trunk输出,在后端计算的同时前端也加载网络静态资源。 脚本执行慢,就让脚本在最后运行,不阻塞页面解析。 同时,合理的预加载、预缓存可以让加载速度的瓶颈更小。

    61810

    Android hybrid_android混合开发

    在java文件中创建一个供网页端调用的类,如JSObject,里面编写供网页调用的方法. 一般h5页面常要调用Android摄像头,相册,还有自定义方法。...在h5页面中,添加调用接口,在网页的javascript代码中使用上面安卓提供的MyJS.add()来调用(MyJS为Android端使用addJavascriptInterface方法时注入的调用本地方法类名称...效果图: Hybrid开发流程: 1、Android端编写方法api,暴露给h5页面调用 创建一个供网页端调用的类,如JSObject,里面编写供网页调用的方法,记得在方法上面添加@JavascriptInterface...MyJS可以看成是JSObject类在网页中的别名,下面会使用webview的addJavascriptInterface()方法将它们关联起来。 的参数是字符串,那么在拼接调用的url的时候需要对参数加上‘’号。

    1.3K20

    WebView 和 JS 交互,如何将 Java 对象和 List 传值给 JS ?

    随着混合开发模式比较流行,很多时候,我们需要在原生的基础上,使用 WebView 加载网页,这样控制更加方便。今天我们来看看,如何将 Java 对象 和 List 集合传值给 JS 调用。...它的意思就是告诉 JS ,这个可以用,所以我们在 Html 文件中,使用 person.get()对应的方法,可以获取到内容。...在 WebView 上是这样传值的: webView.loadUrl("file:///android_asset/test_object.html"); final Person p = new Person...Java 对象 p 给 webview 为 person,在 JS 调用的时候,对应的就是 person 。...就是在JS中调用 Android中的方法,里面可以按照索引返回集合中的对象,然后再获取对象中的属性。

    8.6K100

    android系统结构和源码版本

    image.png 应用层 Android的应用程序主要是用户界面(User Interface)方面的,通常以JAVA程序编写,其中还可以包含各种资源文件(放置在res目录中)JAVA程序及相关资源经过编译后...系统库和Android虚拟机 该层分为两部分:系统库和android虚拟机。 系统库 主要为C/C++库,这些库能被Android系统中不同的组件使用。...在执行的过程中,每一个应用程序即一个进程(Linux的一个Process)。...26 牛轧糖 Nougat 7.1 API 级别 25 牛轧糖 Nougat 7.0 API 级别 24 棉花糖 Marshmallow 6.0 API 级别 23 棒棒糖 Lollipop 5.1...API 级别 22 棒棒糖 Lollipop 5.0 API 级别 21 奇巧 KitKat 4.4-4.4.4 API 级别 19 果冻豆 Jelly Bean 4.3.x API 级别 18 果冻豆

    78820

    Android 混合开发之JsBridge

    对象,之后,在js中便可以直接访问该对象,使用@JavascriptInterface注解的方法。...addJavascriptInterface注入的对象在H5的任何地方都可以调用,不存在注入时机跟注入失败的问题,在H5的head里调用都没问题。...实际使用中确实会发生这种情况,尤其是APP中有很多线程的场景下,怀疑是这么一种场景: 第一步:js线程在执行prompt时被挂起, 第二部 :UI线程被调度,恰好销毁了Webview,调用了 (webview...如果不主动destroy webview,可以很大程度避免这个问题,具体Chrome的实现如何,还没分析过,这里只是根据现象推测如此。...实现,可以避免prompt挂掉js环境的问题 通过@JavascriptInterface的方法中不要同步处理耗时操作,需要返回值的方法需要阻塞调用(尽量减少) 如果非要用prompt,尽量不要自己destroy

    2.2K20

    Android WebView与JS交互实例

    正文 一切基于项目WebViewStudy来说明,都是最小单元案例,可作为参考研究,本文从几个方面来讲解: 1、Java调用WebView里的js代码(传递参数) 2、WebView里的js代码调用Java...')">点击调用java代码并传递参数 内容显示 Java调用WebView里的js代码(传递参数...// 传递参数调用 webView.loadUrl("javascript:javacalljswithargs('" + "android传入到网页里的数据,有参" + "')"); 2、如果是显示后就调用...比如 网页里面有图片,我们点击图片想要查看图片和保存图片到本地,这时候网页并没有实现这个js方法供我们调用,但是我们可以注入js代码,来实现这个需求。...在html加载完成之后,我们调用这段js: // 这段js函数的功能就是,遍历所有的img节点,并添加onclick函数,函数的功能是在图片点击的时候调用本地java接口并传递url过去 webView.loadUrl

    4.1K20
    领券