WebView交互架构项目实战(二),张孝祥java基础视频教程

本文详细介绍了在Android中如何使用WebView进行JavaScript与Java的交互,包括API `addJavascriptInterface`的使用、调用规则以及实际应用中的注意事项,如在Android 4.2及以上版本需要添加`@JavascriptInterface`注解以确保安全。文中还提供了一个简单的示例代码,展示如何在Java中调用JavaScript方法。
摘要由CSDN通过智能技术生成
API说明
addJavascriptInterface(Object object, String name)

参数说明:

第一个参数是一个包含html页面中调用方法的类.

第二个参数是调用类时的标记.

Javascript中调用Java 的规则:

Html中结构:

  • javascript: + name + . + method

说明:

  • javascript:是不变的,不要忘记冒号。

  • name:是在调用 addJavascriptInterface(Object object, String name)方法中设置的name,二者要保持对应。method:是调用的方法,method即调用方法中的方法名字。

eg:Java中有call 方法,在Html中js中

<a href='javascript:contact.call()'>拨打</a>,点击拨打便会调用Java 中的call 方法。

Java 中调用 Javascript 的规则:

Java中结构:

mWebView.loadUrl("javascript: + methodName('" + data + "')");

在此结构中只有methodName和data是变量,其他都为不可变的,照用即可。

  • methodName:是指Javascript中的方法

  • data:是指传入的数据。

在实际使用时重要注意问题
  • Android 4.2以后要加注释语句@JavascriptInterface

在Android 4.2之前向webview注入的对象所暴露的接口没有注释语句@JavascriptInterface,而4.2及以后的则多了注释语句@JavascriptInterface

经过查官方文档所知,因为这个接口允许JavaScript 控制宿主应用程序,这是个很强大的特性,但同时,在4.2的版本前存在重大安全隐患,因为JavaScript 可以使用反射访问注入webview的java对象的public fields,在一个包含不信任内容的WebView中使用这个方法,会允许攻击者去篡改宿主应用程序,使用宿主应用程序的权限执行java代码。因此4.2以后,任何为JS暴露的接口,都需要加.

  • 在Android 较高版本中调用JavaScript 中方法的语句要在线程中运行。

// 调用javascript中的show()方法

mHandler.post(new Runnable() {

@Override

public void run() {

mWebView.l

【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】

浏览器打开:qq.cn.hn/FTf 免费领取

oadUrl(“javascript:show(’” + json + “’)”);

}

});

示例代码:
html 代码:
Insert title here
姓名存款电话

刷新

Java代码:

public class MainActivity extends AppCompatActivity {

private WebView mWebView;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值