WebViewJavascriptBridge 强大实用的一款支持OC和JavaScript桥接的框架
有关他的实用网上非常多,这里不再赘叙。但是源码分析网上还是太杂了,我这里紧跟着源码一行行的进行分析吧。
我们进入WebViewJavascriptBridge类,可以看到:
其实,这个WebViewJavascriptBridgeBase才是内核所在,WebViewJavascriptBridge只是对他的使用层的一个封装而已,后面会分析。
看到这句:
- (void)registerHandler:(NSString *)handlerName handler:(WVJBHandler)handler {
_base.messageHandlers[handlerName] = [handler copy];
}
- (void)removeHandler:(NSString *)handlerName {
[_base.messageHandlers removeObjectForKey:handlerName];
}
就可以知道,原来,messageHandler是一个字典类型,用你传进来handerName作为key,用你传进来的block copy一份作为handler的object。
别的参考这位大神的分析:
http://www.jianshu.com/p/1d41f16f3bac
看了之后你会知道,其实最重要是集中在这三个地方:
1.Native和JS之间的交互(JS注入,JS回调等)
2.消息队列的分发和处理
3.序列化和反序列化
下一章节会分别阐述上面的几个内容。