基于MKScriptMessageHandler封裝YQWKBridge 處理Native和JavaScript交互的一套框架
主要解決兩個問題
- controller和ScriptMessageHandler:<調(diào)用者> 循環(huán)引用問題;
解決該問題提供兩種方案(1.使用代理 如:YQScriptMessageHandlerDelegate 2.使用中間調(diào)用者 如: YQWeakProxy); - 解決分散調(diào)用問題 集中處理交互的相關(guān)邏輯;
使用案例
導(dǎo)入#import "YQWKBridge.h"<br>
_bridge = [[YQWKBridge alloc] initWith:self.webView];
//js調(diào)用native
[_bridge registerHandler:@"location" handler:^(YQMsgObject * _Nonnull msg) {
NSLog(@"%@", msg.handler);
[msg callback:@{@"lat": @"31.00", @"log":@"120"}];
}];
[_bridge registerHandler:@"scanQR" handler:^(YQMsgObject * _Nonnull msg) {
NSLog(@"msg.handler = %@ 交互成功", msg.handler);
}];
//OC 調(diào)用 js
[_bridge injectMessageFuction:@"showAlert" withActionId:@"" withParams:@{@"name" : @"Native成功調(diào)起JS方法"}];
框架非常簡單易用 YQWKBridge
如果使用過程中遇到問題請及時反饋