作者:朱灵子
React Native用IOS自带的JavaScriptCore作为JS的解析引擎,普通的JS-OC通信就是React Native在OC定义一个模块方法,JS可以直接调用这个模块方法并还可以无缝衔接回调。
具体的接口调用实现方法如下所示:
RCTVideo.RNCallbackEvent('dsb',(error,callBackEvents)=>{
if (error) {
console.error(error);
} else {
AlertIOS.alert('返回值:'+JSON.stringify(callBackEvents));
}
});
let ocFun = NativeAppEventEmitter.addListener(
'eventName',
(para) => AlertIOS.alert('被OC触发','字典数据:\n name:'+para.name+'\n age:'+para.age)
);
ocFun : 将绑定好的监听事件引用交给此变量保存。
addListener:
第一个参数:事件名
第二个参数:响应函数
注意:利用addListener进行监听,一定要对应有取消监听!
且通常取消监听都在componentWillUnmount函数中进行。如下:
componentWillUnmount(){
ocFun.remove();
}
概括一下整体流程如下
整个流程就是这样,简单概括下,差不多就是:JS函数调用转ModuleID/MethodID -> callback转CallbackID -> OC根据ID拿到方法 -> 处理参数 -> 调用OC方法 -> 回调CallbackID -> JS通过CallbackID拿到callback执行
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。