说白了就是两种不同的语言通过桥接实现共通!
庆幸的是IOS已经封装好了桥接文件,我们只需拿过来调用就行了~如下图:红色圈住部分为OC调JS代码时 运行JS方法(协议头),绿色部分,需要在OC中注册两个相同的方法名,类似Runtime一样,运行到这个方法名的时候“交换执行方法”
OC代码使用:
OC调用JS代码的时候,JS方法名(function(上图红色圈住部分):协议头)放在这个地方,
- (void)invokeJavaScript:(NSString *)function;
- (void)invokeJavaScript:(NSString *)function completionHandler:(void (^)( id, NSError * error))completionHandler;
/**
* @brief 注册js调用oc的名称
* @return 子类需要返回注册的名称,以及实现方法(上图绿色圈住部分)
*/
- (NSArray <NSString *>*)registerJavascriptName;
方法实现:
这就是JS调用OC代码的时候注册使用的两个方法