概述
JavaScriptBridge已经不是一个新鲜的东西了,但是最近因为业务要求,需要在JSContext环境提供一个Bridge来进行通信。所以做了一个同时支持Webview和JSContext环境的bridge。
bridge.png
开发思路
这个两个接口都是单工的通信接口,而我们希望,当一端给另一端发送消息的时候,可以像发送网络请求那样得到响应。也就是说将两个单工的数据通道变成双工的。我们可以在其中抽象出一个bridge来处理消息的转发。
例如:
Native调用函数A给JS发送一个id为123的消息,JS处理完成之后,调用B方法给客户端传递一条id为123的消息
反之亦然。
客户端根据环境不同,建立和JS的通信环境和接口,建立两条单工的通道,两条单工通道组成一个双工通道。
handleHoneMessageFromNative:客户端调用JS的时候,客户端维护回调id
handleHoneMessageFromJS:JS调用客户端的时候,JS侧维护回调id
网友评论