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;

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

  1. WebView交互架构项目实战(三):多进程WebView使用实践

    *本文介绍自己在使用WebView的过程中遇到的一些问题的解决方法和对WebView的一些优化实践* *浏览器缓存知识介绍:* 浏览器缓存之 Expires , max-age, Etag , Las ...

  2. java商城项目面试题,Java基础视频教程

    摘要 Apache Kafka是一个分布式消息发布订阅系统.它最初由LinkedIn公司基于独特的设计实现为一个分布式的提交日志系统( a distributed commit log),之后成为Ap ...

  3. Taro多端开发实现原理与项目实战(二)

    Taro多端开发实现原理与项目实战(二) 多端电商平台项目概述及开发准备 学习了前面的基础知识和进阶后是否跃跃欲试?我们准备了一个电商平台的项目来和大家一起实践使用 Taro 开发电商平台. 项目概述 ...

  4. flutter 项目实战二 网络请求

    本项目借用 逛丢 网站的部分数据,仅作为 flutter 开发学习之用. 逛丢官方网址:https://guangdiu.com/ flutter windows开发环境设置 flutter 项目实战 ...

  5. Linux运维企业架构项目实战系列

    Linux运维企业架构项目实战系列 目录 一.全网备份 (一)部署Rsync守护进程 1)服务端(backup) 2)客户端(web01/02/03 nfs01) (二)编写脚本文件 1)客户端脚本编 ...

  6. 【项目】基于SaaS的餐掌柜项目实战 阶段一 基于SaaS的餐掌柜项目实战 第1章 基础架构搭建 1 餐掌柜需求分析

    [项目]基于SaaS的餐掌柜项目实战 文章目录 [项目]基于SaaS的餐掌柜项目实战 阶段一 基于SaaS的餐掌柜项目实战 第1章 基础架构搭建 1 餐掌柜需求分析 1.1 餐饮行业分析 1.2 餐饮 ...

  7. c语言期中项目实战二—简易扫雷,思路分析加代码详细注释

    c语言期中项目实战二-简易扫雷,思路分析+代码详细注释 游戏介绍 项目步骤 模块化编程 设置菜单 设置棋盘 打印棋盘 布置雷 排查雷 总结及总代码和详细注释 游戏介绍 扫雷这个经典游戏,直到现在仍有很 ...

  8. java新建android_Android Studio项目的创建及Java基础知识

    一.Android Studio创建一个项目 创建工程 image.png 添加独立的模块 用于开发java程序 image.png image.png image.png 如何查看一个文件是什么类型 ...

  9. mysql核心数据库_从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程...

    从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程 课程目录 (1) 01MySQL基础_课程引入.avi (2) 02MySQL基础_为什么学习 ...

最新文章

  1. POJ2492 A Bug s Life 题解
  2. Transformer全靠数据堆?那没有数据怎么办?LUT告诉你「冇问题」|AAAI 2021
  3. nsTimer的简单用法
  4. Android视频播放之VideoView
  5. 2016陕西省ACM省赛 HE 字符串处理 删除注释
  6. 安卓CTS官方文档之兼容性方案概览
  7. 3dmax教程技术:3dmax 怎么去掉贴图_3dmax如何去掉贴图
  8. python 经验模态分解_心电信号去噪4--经验模态分解法(EMD)
  9. 领峰:现货白银怎么样,怎么炒才正确
  10. Python CGI编程实现网页上传本地文件
  11. 基于 SpringBoot 和 webSocket 的匿名聊天室
  12. 80c51单片机P3引脚的第二功能
  13. ae 能在linux上运行吗,玩了这么久Linux,这些使用技巧你可能还不知道!
  14. 大屏可视化简介(echarts)
  15. python绘制四叶草_python绘图四叶草_Python教程,python,绘图
  16. 041-推箱子游戏1
  17. 人重要的是知耻而后勇
  18. shell易错点整理
  19. sql镶嵌查询_SQL 嵌套查询
  20. 安装虚拟机之开启VT

热门文章

  1. 时间转换: LocalDateTime
  2. 全球及中国智能机器人产业整体运营状况与投资产值分析报告2022版
  3. android8.1字体,Android 8.1采用全新字体:圆润舒适
  4. MT6762芯片资料,MTK6762原理图下载
  5. Make-A-Video(造啊视频)——无需文字-视频数据的文字转视频(文生视频)生成方法
  6. 苹果公司创始人沃兹尼艾克加入创业公司
  7. 2017-8-24股票复盘
  8. STM32 SPI发送波形
  9. * JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.
  10. 雪花算法及运用PHP,雪花算法生成全局唯一ID,参考了下网上雪花算法生成规则,机器ID和序列号自动获取 理论上毫秒可生成 1024*4096个唯一ID