Android WebView 的 addJavascriptInterface 探究

news2024/11/16 17:32:02

Android WebView 的 addJavascriptInterface 探究

一、前言

Java和JS交互的方式有多种,这里探讨的方式是通过以下方式进行的交互。

webView.addJavascriptInterface(this, "JSBridge")

这篇文章是想弄明白 JavaScript 和 Java是如何实现这种方式互调的,就从源码角度开始分析 。

二、分析

1. 图示调用关系

上面这张调用关系流程图,关于源码是基于Android4.4 源码进行分析,Android在4.4将WebView内核改为 chromium ,在Android4.4以上的系统源码会有所调整。在 翻阅Android 6.0的时候,源码中提示 :Building the Chromium-based WebView in AOSP is no longer supported. WebView can now be built entirely from the Chromium source code. 这个句话的意思是基于chromium 的WebView不再在安卓开放源代码项目,所以如果你在6.0以上的版本中将找不到下面即将分析的源代码。具体的调整你可以自行查阅。

2. 源码分析

  • WebView  源码位置:/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/506881.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C高级 day1

初始工作路径不在家目录下,在不切换路径的情况下,在家目录下创建一个subdir目录,在subdir这个目录下,创建subdir1和subdir2,并且把/etc/passwd拷贝到subdir1中,把/etc/group文件拷贝到subdir2中&#xff0c…

java获取登陆用户ip方法

今天和大家分享一下获取登录用户 ip的方法,如果你想获取自己的登陆用户 ip,可以参考以下思路: 1.可以通过 Java动态链接库的方式获取到,方法很简单,就是把需要的 ip地址添加到动态链接库中,然后在需要用到时…

Word三线表创建

三线表是论文写作中经常使用到的表格格式 自定义三线表 “插入”-->“表格”,随便插入一个表格,然后将光标移动到表格内 “表设计”-->“其他”-->“新建表格样式” 修改模板名称为“三线表”,方便下次直接套用 首先设置标题行【…

把苹果全家桶用于VR全身追踪是什么体验

此前,青亭网曾报道了一项无需摄像头的VR全身追踪方案:Standable: Full Body Estimation(简称SFBE),这套方案就是利用了头显双手柄数据来模拟预测全身动作数据,效果还算不错。 近期在CHI2023活动上&#xff…

深度学习02-神经网络(MLP多层感知器)

文章目录 神经网络简介学习路径分类 多层感知器(MLP)神经网络认识两层神经网络输入层从输入层到隐藏层从隐藏层到输出层激活层输出的正规化如何衡量输出的好坏反向传播与参数优化过拟合 BP算法推导定义算法讲解前向传播反向传播 具体实例 tensorflow实战…

Python并发编程之进程理论

前言 本文将详细介绍进程相关概念。 进程和程序 计算机上的未运行的QQ、Wechat等都属于程序,但是一旦当这些程序运行起来的话,就可以被称为进程。因此可以如下定义程序和进程: 程序:就是存在硬盘上的一堆代码。 进程&#xf…

【AI】YOLOV1原理详解

1、简介 YOLO:You Only Look Once,一种对象检测算法,2016年由Redmon提出 优点:速度快,适合于实时检测任务; 缺点:准确度略低 2、其它算法对象检测原理 在YOLO出现之前,其它算法使用分类器对测试图像的不同切片进行评估。 例如,使用一个小窗口在图像上滑动来获取一小…

【标准化方法】(4) Weight Normalization 原理解析、代码复现,附Pytorch代码

今天和各位分享一下深度学习中常用的归一化方法,权重归一化(Weight Normalization, WN),通过理论解析,用 Pytorch 复现一下代码。 Weight Normalization 的论文地址如下:https://arxiv.org/pdf…

GEE:基于主成分分析(PCA)的风险筛选环境指标(RSEI)计算方法

作者:CSDN @ _养乐多_ 利用主成分分析(Principal Component Analysis, PCA)进行风险筛选环境指标(Risk-Screening Environmental Indicators, RSEI)的计算是一种常用的方法。本文介绍了基于主成分分析的RSEI计算方法,通过将多个基于遥感指数的环境指标转化为少数几个主成…

电脑cpu占用率高?怎么办?1分钟快速解决!

案例:电脑cup过高怎么办? 【我的电脑运行缓慢,导致我学习和工作的效率很低。刚刚查看了一下电脑,发现它的cpu占用率很高。有没有小伙伴知道如何解决此电脑cpu过高的问题?】 电脑是我们生活中不可缺少的工具&#xff…

Linux 多线程(1)线程概念与线程控制

多线程:概念、线程控制(创建、终止、等待、分离),线程安全(问题&实现),应用(生产者与消费者模型,线程池,单例模式) (重要&#xf…

linux系统(进程间通信)06_IPC概念,pipe管道,fifo通信,mmap 共享映射区

01 学习目标 1.熟练使用pipe进行父子进程间通信 2.熟练使用pipe进行兄弟进程间通信 3.熟练使用fifo进行无血缘关系的进程间通信 4.熟练掌握mmap函数的使用 5.掌握mmap创建匿名映射区的方法 6.使用mmap进行有血缘关系的进程间通信 7.使用mmap进行无血缘关系的进程间通信 02 IPC概…

Netfilter和iptables命令详解,从入门到精通

本文目录 1、netfilter架构和工作原则简介2、iptables操作命令说明2.1 、Filtering Specifications2.2、Target Specifications2.3、一个基于Linux的基本的防火墙的配置例子 netfilter 是Linux内核里网络部分的一个重要框架,内核通过netfilter完成IP报文的一些操作。…

缓存雪崩问题

缓存雪崩:指在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量的请求到达数据库,带来巨大的压力 解决方案: 1.给不同的key的TTL添加随机值 2.利用redis集群提高服务的可用性 3.给缓存业务添加降级限流策略 4.给业务添…

扫雷,咱就是一扫一大片(C语言完美递归版)

🤩本文作者:大家好,我是paperjie,感谢你阅读本文,欢迎一建三连哦。 🥰内容专栏:这里是《C语言》专栏,笔者用重金(时间和精力)打造,基础知识一网打尽,希望可以…

零基础入门 Stable Diffusion - 无需显卡把 AI 绘画引擎搬进家用电脑

我从小特别羡慕会画画的伙伴。他们能够将心中的想法画出来,而我最高水平的肖像画是丁老头。但在接触 Stable Diffusion 之后,我感觉自己脱胎换骨,给自己贴上了「会画画」的新标签。 丁老头进化旅程 Stable Diffusion 是一个「文本到图像」的…

区间预测 | MATLAB实现QRLSTM长短期记忆神经网络分位数回归时间序列区间预测

区间预测 | MATLAB实现QRLSTM长短期记忆神经网络分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRLSTM长短期记忆神经网络分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 进阶版 基础版 基本介绍 MATLAB实现QRLSTM长短期记忆神经…

微波方向有哪些SCI期刊推荐? - 易智编译EaseEditing

微波方向的SCI期刊推荐包括: IEEE Transactions on Microwave Theory and Technology: 该期刊是电磁场与微波技术领域的著名期刊,被世界上许多研究机构和大学广泛引用。 IEEE Transactions on Antennas and Propagation: 该期刊…

C++学习记录——이십일 AVL树

文章目录 1、了解AVL树2、模拟实现3、旋转1、左单旋2、右单旋3、双旋(先左后右)4、双旋(先右后左) 4、检查平衡5、测试性能(随机数)6、删除 1、了解AVL树 如果数据有序或接近有序,二叉搜索树将…

Java+Python+Paddle提取长文本文章中词频,用于Echart词云图数据

公司有个需求,就是需要提供给echart词云图的数据,放在以前我们的数据来源都是从产品那直接要,产品也是跑的别的接口,那怎么行呢,当然有自己的一套可以随便搞了,那么操作来了 Java package cn.iocoder.yud…