WebView交互架构项目实战(二),张孝祥java基础视频教程
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基础视频教程相关推荐
- WebView交互架构项目实战(三):多进程WebView使用实践
*本文介绍自己在使用WebView的过程中遇到的一些问题的解决方法和对WebView的一些优化实践* *浏览器缓存知识介绍:* 浏览器缓存之 Expires , max-age, Etag , Las ...
- java商城项目面试题,Java基础视频教程
摘要 Apache Kafka是一个分布式消息发布订阅系统.它最初由LinkedIn公司基于独特的设计实现为一个分布式的提交日志系统( a distributed commit log),之后成为Ap ...
- Taro多端开发实现原理与项目实战(二)
Taro多端开发实现原理与项目实战(二) 多端电商平台项目概述及开发准备 学习了前面的基础知识和进阶后是否跃跃欲试?我们准备了一个电商平台的项目来和大家一起实践使用 Taro 开发电商平台. 项目概述 ...
- flutter 项目实战二 网络请求
本项目借用 逛丢 网站的部分数据,仅作为 flutter 开发学习之用. 逛丢官方网址:https://guangdiu.com/ flutter windows开发环境设置 flutter 项目实战 ...
- Linux运维企业架构项目实战系列
Linux运维企业架构项目实战系列 目录 一.全网备份 (一)部署Rsync守护进程 1)服务端(backup) 2)客户端(web01/02/03 nfs01) (二)编写脚本文件 1)客户端脚本编 ...
- 【项目】基于SaaS的餐掌柜项目实战 阶段一 基于SaaS的餐掌柜项目实战 第1章 基础架构搭建 1 餐掌柜需求分析
[项目]基于SaaS的餐掌柜项目实战 文章目录 [项目]基于SaaS的餐掌柜项目实战 阶段一 基于SaaS的餐掌柜项目实战 第1章 基础架构搭建 1 餐掌柜需求分析 1.1 餐饮行业分析 1.2 餐饮 ...
- c语言期中项目实战二—简易扫雷,思路分析加代码详细注释
c语言期中项目实战二-简易扫雷,思路分析+代码详细注释 游戏介绍 项目步骤 模块化编程 设置菜单 设置棋盘 打印棋盘 布置雷 排查雷 总结及总代码和详细注释 游戏介绍 扫雷这个经典游戏,直到现在仍有很 ...
- java新建android_Android Studio项目的创建及Java基础知识
一.Android Studio创建一个项目 创建工程 image.png 添加独立的模块 用于开发java程序 image.png image.png image.png 如何查看一个文件是什么类型 ...
- mysql核心数据库_从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程...
从MySQL基础进军MySQL核心架构 178集MySQL数据库核心基础视频教程 MySQL基础案例教程 课程目录 (1) 01MySQL基础_课程引入.avi (2) 02MySQL基础_为什么学习 ...
最新文章
- POJ2492 A Bug s Life 题解
- Transformer全靠数据堆?那没有数据怎么办?LUT告诉你「冇问题」|AAAI 2021
- nsTimer的简单用法
- Android视频播放之VideoView
- 2016陕西省ACM省赛 HE 字符串处理 删除注释
- 安卓CTS官方文档之兼容性方案概览
- 3dmax教程技术:3dmax 怎么去掉贴图_3dmax如何去掉贴图
- python 经验模态分解_心电信号去噪4--经验模态分解法(EMD)
- 领峰:现货白银怎么样,怎么炒才正确
- Python CGI编程实现网页上传本地文件
- 基于 SpringBoot 和 webSocket 的匿名聊天室
- 80c51单片机P3引脚的第二功能
- ae 能在linux上运行吗,玩了这么久Linux,这些使用技巧你可能还不知道!
- 大屏可视化简介(echarts)
- python绘制四叶草_python绘图四叶草_Python教程,python,绘图
- 041-推箱子游戏1
- 人重要的是知耻而后勇
- shell易错点整理
- sql镶嵌查询_SQL 嵌套查询
- 安装虚拟机之开启VT
热门文章
- 时间转换: LocalDateTime
- 全球及中国智能机器人产业整体运营状况与投资产值分析报告2022版
- android8.1字体,Android 8.1采用全新字体:圆润舒适
- MT6762芯片资料,MTK6762原理图下载
- Make-A-Video(造啊视频)——无需文字-视频数据的文字转视频(文生视频)生成方法
- 苹果公司创始人沃兹尼艾克加入创业公司
- 2017-8-24股票复盘
- STM32 SPI发送波形
- * JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.
- 雪花算法及运用PHP,雪花算法生成全局唯一ID,参考了下网上雪花算法生成规则,机器ID和序列号自动获取 理论上毫秒可生成 1024*4096个唯一ID