jsbridge实现及原理_JSBridge 介绍及实现原理

JSBridge连接web和native,允许两者互相调用。在Android中,通过监听window对象的特定方法如alert、confirm、prompt及location变化来实现交互。自定义协议如ywjs://用于传递方法和参数。iOS则利用UIWebView的委托方法识别jsbridge://开头的请求以执行相应调用。
摘要由CSDN通过智能技术生成

JSBridge 介绍

JSBridge是一座用JavaScript搭建起来的桥,一端是web,一端是native。我们搭建这座桥的目的也很简单,让native可以调用web的js代码,让web可以 “调用” 原生的代码。

实现原理

Android实现:

我们来想想如何实现上面的功能。难点有这么几个:

1、如何创建一个webview?如何在webview中加载网页?

2、web如何调用android?

对于第一点,不是本文的重点,你可以参考这个链接来自行解决。

对于第二点,我们继续分析。

web和android,就像是一个中国人和一个美国人。想要不同语言之间的人进行有效沟通的话,必须要满足以下两个基本要素。

你在听我说话 => 你在监听我的动作 =>javascript的某个行为会被java捕获到。我们手上有一本中英双译字典 => 我们之间有协议规范 => 对于传输的信息,javascript和java要用规定好的方式来编码和解码

先来看动作监听。javascript的哪些操作会被java捕获到?整个web页面都是运行在java提供的webview实例当中。javascript执行以下四种行为会被webview监听到,箭头后面是对应触发的Java方法。

1、window.alert => onJSAlert

2、window.confirm => onJSConfirm

3、window.prompt => onJsPrompt

4、window.location => shouldOve

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值