React Native使用什么来允许JavaScript本地在iOS和Android上执行?

时间:2015-11-02 13:50:33

标签: javascript android ios reactjs react-native

React Native使用什么来覆盖iOS和Android? Cordova使用WebView有效地显示本机容器内的网页; React Native是否使用相同的方法?如果没有,它采用什么方法?

3 个答案:

答案 0 :(得分:13)

正如您注意到React Native不是基于Cordova。它不是一个看起来像应用程序铲入WebView的网站。

React Native使用JavaScript运行时,但UI不是HTML,也不使用WebView。您可以使用JSX和React Native特定组件来定义UI。

它提供了本机级别的性能和外观,但是必须为iOS和Android单独配置一些UI部件。例如,工具栏完全不同,但两个操作系统的TextInput可以相同。

答案 1 :(得分:8)

在iOS模拟器和设备上,Android模拟器和设备React Native使用 JavaScriptCore ,它是为Safari提供动力的JavaScript引擎。 Source

答案 2 :(得分:0)

要运行Javascript代码

React Native在Android / iOS模拟器和设备上使用JavaScriptCore(支持Safari的JavaScript引擎)。

对于Android,React Native将JavaScriptCore与应用程序捆绑在一起。

对于iOS,React Native使用iOS平台提供的JavaScriptCore。

与Android / iOS通信

使用反应本机桥(C ++ / Java桥)。它负责本机线程与Javascript线程之间的通信。

  

在大多数情况下,开发人员会使用Javascript编写整个React Native应用程序。要运行该应用程序,请通过CLI发出以下命令之一-react-native run-iosreact-native run-android。此时,React Native CLI将产生一个节点打包器/捆绑器,该打包器/捆绑器会将JS代码捆绑到单个main.bundle.js文件中。打包程序可以被认为类似于Webpack。现在,每当启动React Native应用程序时,要加载的第一项就是本机入口点。本机线程产生运行捆绑的JS代码的JS VM线程。 JS代码具有应用程序的所有业务逻辑。现在,本机线程通过RN Bridge发送消息以启动JS应用程序。现在,生成的Javascript线程开始通过RN Bridge向本地线程发出指令。这些说明包括要加载的视图,要从硬件检索的信息等。   Source