React Native是facebook刚开源的结构,能够用javascript直接开发原生APP,先不说这个结构后续是否能得到群众认可,单从源码来说,这个结构源码里有十分多的规划思维和完成办法值得学习,本篇先来看看它最根底的JavaScript-ObjectC通信机制(以下简称JS/OC)。
概览
React Native用iOS自带的JavaScriptCore作为JS的解析引擎,但并没有用到JavaScriptCore供给的一些能够让JS与OC互调的特性,而是自个完成了一套机制,这套机制能够通用于一切JS引擎上,在没有JavaScriptCore的情况下也能够用webview代替,实际上项目里就已经有了用webview作为解析引擎的完成,应该是用于兼容iOS7以下没有JavascriptCore的版别。
一般的JS-OC通信实际上很简单,OC向JS传信息有现成的接口,像webview供给的-stringByEvaluatingJavaScriptFromString办法能够直接在当时context上履行一段JS脚本,而且能够获取履行后的返回值,这个返回值就相当于JS向OC传递信息。React Native也是以此为根底,经过各种手法,完成了在OC界说一个模块办法,JS能够直接调用这个模块办法并还能够无缝衔接回调。