zoukankan      html  css  js  c++  java
  • React Native集成到现有项目(非cocoa pods)

    • 将一个现有的ios项目添加react native支持时,有以下几个关键步骤:

      • 在项目里新建一个group,然后在node_modules下面找到ReactLibraries两个文件夹,将这两个文件夹下的.xcodeproj文件引入到我们创建的group中。

      • 找到项目的build settings配置,在Header Search Paths下面新增一个地址,定位到node_modules/react-native/React目录下,选择递归(recursive)。

      • 找到项目的build phases配置,找到Link Binary With Libraries,将步骤1里面的.a文件全部引入即可完成配置。

      • 找到项目的Other Linker Flags配置,添加-ObjC-lc++标志

    • 在引入RCTRootView时,官网的代码里是少了一个参数,即initialProperties参数,我们要在自己的代码里添加这个参数,传nil即可。

    • 在moduleName里边填入module name, 在js里面注册对应的module name

    • react native内置的api毕竟还不能满足所有的需求,有时也会自己写一些接口来供js调用,下面列举一些需要注意的点:

    • 由于oc是多线程(GCD)的,上文也说到在执行javascript时是在javascript的线程中进行的,所以在写接口时,如果需要调用非javascript线程的逻辑,就需要在主线程进行,即在业务代码前获取到主线程即:

    dispatch_async(dispatch_get_main_queue(),^ {        
        [nav pushViewController:cg animated:YES];    
    });

    4 在自定义接口时,我们在oc端定义的方法时,如果有参数,那么js端一定要传这个参数,如果没有定义参数,js端也不能传参数,这可能和js以往的语法不太一样,即使定义的一个方法,我传不传都不会报错,但是在oc是不行的,必须严格按照定义方法时的格式来传递。

  • 相关阅读:
    哈希表及其应用分析
    程序员常用的查找算法
    程序猿必备排序算法及其时间复杂度分析
    递归和回溯求解8皇后问题
    链表种类及其常用操作
    为什么要使用稀疏矩阵??
    微服务项目持续集成部署流程简介
    微服务项目的docker自动化部署流程
    (高考标准分)数据拟合==>多项式方程==>excel公式算成绩(标准分)
    awk用名称对应关系批量重命名
  • 原文地址:https://www.cnblogs.com/newBlash/p/5509537.html
Copyright © 2011-2022 走看看