美文网首页
Hybrid模式通信流程

Hybrid模式通信流程

作者: JerrySi | 来源:发表于2019-07-29 21:37 被阅读0次

写这篇文章的原因:

Hybrid模式我已经使用很久,很早前我就对JSBridge通信原理也有所研究。最近发现细节部分已经遗忘,发觉有必要记录下。


在Android和iOS端我们都是使用的JSBridge,Git地址如下。我们只是在这个上面做了微调,流程是不变的。

iOS端链接地址     Android端链接地址

2者原理大同小异,这里以iOS为例:

1. 初始化

Native启动WKWebview,首先初始化JSbridge,约定协议,注册H5发送和调用方法。

2. Native register

存在Native端的messageHandlers字典里面,格式:【Key:handle】

3. H5 register

存在H5端的messageHandlers字典里面,格式:【Key:handle】


真正调用从下面开始

Native 调用 H5

1. 首先拼接字典对象,需要下面3个参数:

{"data": "", "callbackId","自增id","handlerName":"调用的key"}

把"callbackId"作为Key存储回调方法在responseCallbacks字典里面,【callbackId:responseCallback】

上面对象转成JSONString发给H5。

2. 在H5端,首先把Native传过来的"callbackId"作为responseId保存起来。

再根据"handlerName"找到messageHandlers字典里面的方法,执行handle,接着会把之前记录的responseId和responseData返回给Native。

3. Native会查看是否有responseId,如果有就根据responseId调用之前存储在原生responseCallbacks里面的responseCallback,在Native调用responseCallback并移除该responseCallback。

H5 调用 Native

1. 首先拼接对象:

{"data": "", "callbackId","自增id+时间戳","handlerName":"调用的key"}

把"callbackId"作为Key存储回调方法在responseCallbacks里面,【callbackId:responseCallback】

上面对象转成JSONString发给Native

2. Native接受到消息,查看是否有responseId,这个时候是没有的。查看是否有callbackId,如果有把H5传过来的"callbackId"作为responseId保存起来。

再根据"handlerName"找到messageHandlers字典里面的方法,执行handle,接着会把之前记录的responseId和responseData返回给H5。

3. H5会查看是否有responseId,如果有就根据responseId调用之前存储在原生responseCallbacks里面的responseCallback,在H5调用responseCallback并移除该responseCallback。


看到这里就发现H5调用Native  和 Native调用H5 大同小异,了解一个流程就可以了。   

相关文章

  • Hybrid模式通信流程

    写这篇文章的原因: Hybrid模式我已经使用很久,很早前我就对JSBridge通信原理也有所研究。最近发现细节部...

  • 其他

    一、混合开发面试题 Hybrid做过吗? Hybrid通信原理是什么,有做研究吗? react native有多少...

  • Android中Hybrid实战

    目录 1、项目中Hybrid整体结构2、桥接层3、基础通信层4、打开离线插件的流程5、离线插件数据预加载优化 1、...

  • HybridAPP基础|WKWebView加载及跳转监听

    Hybrid App简介 Hybrid App(混合模式移动应用)是一种即古老又时髦的开发模式,古老是因为在iPh...

  • Android Hybrid App通信

    在Android开发中,能够实现Web调用Native代码的方法主要有以下方法:1.Schema:WebView拦...

  • 混合开发——Hybrid通信

    等晚上在整理哈哈哈哈哈https://www.cnblogs.com/zhanganju/p/5459008.ht...

  • Android集成三方浏览器之X5内核

    很多应用开始采用 hybrid 开发模式,最近在做有关 webrtc 视频通讯的项目,也是使用 hybrid 开发...

  • Hybrid App中原生页面 VS H5页面

    现有3类主流APP,分别为:Web App、Hybrid App(混合模式移动应用,Hybrid有“混合的”...

  • hybrid app开发工具

    1、AppCan AppCan是国内Hybrid App混合模式开发的倡导者,AppCan应用引擎支持Hybrid...

  • Hybrid App中原生页面 VS H5页面

    现有3类主流APP,分别为:Web App、Hybrid App(混合模式移动应用,Hybrid有“混合的”意思)...

网友评论

      本文标题:Hybrid模式通信流程

      本文链接:https://www.haomeiwen.com/subject/eooirctx.html