首页 > 学院 > 开发设计 > 正文

关于react-native

2019-11-09 15:51:45
字体:
来源:转载
供稿:网友

是自己的理解,可能理解的还不够通透,仅供自己参考使用。

React Native集成到已有项目中以及 代码发布

这里只记录主要的步骤:

1.生成react-native文件,按照官网上一步一步来

2.将react-native项目先放在和自己原生项目同一级目录下。然后利用cocopods进行引用。

  podfile文件里写下如下代码:pod 'React', :path => '../zm_react_native(替换成自己的react native名字)/node_modules/react-native', :subspecs      => ['Core',

    'RCTText',

    'RCTNetwork',

    'RCTWebSocket',# needed for debugging

    # Add any other subspecs you want to use in your PRoject

  ]

  pod 'CodePush', :path =>'../zm_react_native/node_modules/react-native-code-push', :subspecs => ['Core']

//注意,我这里之所以这样写,是因为项目里已经有了一个SSZipArchive第三方。如果没有这个第三方使用:pod'CodePush', :path =>'../node_modules/react-native-code-push'

然后执行pod install 或者pod update

3.接下来就是使用了-初始化控件

#ifdef DEBUG

        NSURL *jsCodeLocation = [NSURL

                                 URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios"];

这里是你在调试模式下的时候使用。使用之前先要在react-native目录下执行nam start (意思是启动react native serive)

#else

        NSURL * jsCodeLocation = [CodePush bundleURL];

       这是使用codePush提供的bundleURL。前提是你本地已经有了js包。

当然要利用codePush进行代码push,首先要先利用终端,进行code-push命令注册添加应用,它会返回给你两个key,一个是开发时候使用的key(Staging),一个是发布时候用的key(Production)。这个key需要注册到项目的info里面:添加CodePushDeploymentKey字段,后面的value是string类型,填写key。

注意的是:需要先在react native目录下,终端执行:react-native bundle --entry-file index.ios.js --platform ios --dev false --bundle-output ./ios_output/main.jsbundle --assets-dest ./ios_output,然后把这个ios_output下的文件,引用到我们的原生项目里。因为我们的项目是使用本地的js包。当codePush服务器上有新的js包的时候,会去拉取到本地再使用。(当然,我们需要在index.ios.js里面写上codePush.sync()同步的方法,不然我们怎么去触发拉取最新的js包)

#endif

    RCTRootView *rootView =

    [[RCTRootViewalloc] initWithBundleURL : jsCodeLocation

                         moduleName        :@"LotsOfGreetings"

// 这个LotsOfGreetings可以理解为约定好的模块类型,在react-native目录下的index.ios.js里面,需要注册这个模块

                         initialProperties :nil

                          launchOptions    :nil];


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表