美文网首页
react-native

react-native

作者: jason_master | 来源:发表于2017-12-05 15:19 被阅读0次

    1.集成到现有原生应用

    项目的需求一直是需要集成新的功能到现有的原生应用。所以 最终选择了使用 RN。

    按照官网步骤,配置好相关环境

    RN版本更新较快

    http://reactnative.cn/docs/0.47/getting-started.html#content

    有时候中文网的翻译不够准确,需要看英文原版的。(此处踩过坑)

    pods 已经很好的集成了RN 所以更轻松的引入react-native

    0.45版本发布后,有重大更新。如果你正在使用 Cocoapods, 你必须更新你的 Podfile ,给其中的 React subspec 添加 ‘BatchedBridge’ 依赖。

    2.增量更新

    最开始每次更新都是新发布一个bundle 然后压缩为zip,然后每次在不同的情况下都会去下载新包,下载完成后解压,替换本地bundle,完成更新。但是后来包越来越来,需要优化。更新也不足够的稳定。

    2.1使用code-push

    efe.baidu.com/blog/react-native-code-push-ios/

    根据步骤完成后,搭建本地的服务器

    www.jianshu.com/p/eb7fdee307dc

    修改加载方式,不用自己的更新机制

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {NSURL *jsCodeLocation;#ifdef DEBUG//    NSString *path = [[NSBundle mainBundle] pathForResource:@"index.ios" ofType:@"bundle"];//    jsCodeLocation = [NSURL URLWithString:path];//    jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"main" fallbackResource:nil];jsCodeLocation = [CodePush bundleURLForResource:@"index_test.ios" withExtension:@"bundle"];#elsejsCodeLocation = [CodePush bundleURLForResource:@"index.ios" withExtension:@"bundle"];#endifRCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocationmoduleName:@"nazgrel"initialProperties:nillaunchOptions:launchOptions];rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];UIViewController *rootViewController = [UIViewController new];rootViewController.view = rootView;self.window.rootViewController = rootViewController;[self.window makeKeyAndVisible];return YES;}

    本地倒入要加载的bundle文件,修改info.plist

    Bundle versions string, short 要对应发布的版本

    添加 CodePushDeploymentKey  Staging  CodePushServerURL  分别对应线上环境key 预发测试环境key 和服务器地址

    2.2 React_Native拆分bundle之patch拆包

    njafei.github.io/2017/04/06/React-Native-Seperate-Bundle/

    RCTRootView 多入口初始化问题

    www.jianshu.com/p/56589100d386

    相关文章

      网友评论

          本文标题:react-native

          本文链接:https://www.haomeiwen.com/subject/xnfxixtx.html