Skip to content

实际场景

  • APP容器运行 WebView 如: Hybrid 应用、mpass
  • 小程序: 微信 JS-SDK(WeiXinJSBridge)
  • React-Native
  • Nodejs( js 调用底层操作系统 C/C++)

👆 Node Bindings 就有点类似 JSBridge 的功能,所以 JSBridge 本身是一个很简单的东西,其更多的是 一种形式、一种思想

👆 核心是建立 NativeJavascript 间消息 双向通信 通道

微信 JS-SDK(WeiXinJSBridge)

<script src="https://res2.wx.qq.com/open/js/jweixin-1.4.0.js"></script>

自执行函数往 Window 全局挂在 window.wx类库

JavaScript 执行 Native (主要)

调用全局挂载的类库方法 这些方法基本都是发布订阅模式, Native方有相应的监听触发 JavaScript 期望的功能

并且在此基础上通知 JavaScript 执行结果或者其他

所以即使最简单的通知 Native 替我们做某事, 也是双向通信(需要通知回来执行结果)

思路简单, 实际编写看封装出的公共性

TODO: liebao 封装📦

Native 执行 JavaScript

Native 可以调用 WebView 的执行 js 字符串方法