React Native 嵌入原生项目混合开发-自定义RN Activity

如果进行一个RN项目开发,初始化项目之后,就会有一个Activity是继承RnActivity的。
如果进行混合开发时,由于我们的Activity可能要做很多工作,还想继承我们原生的Activity。
因此,就可以自定义一个RN的Activity,无须继承官网的Activity。

假如,我们已经有了一个BaseActivity。再定义一个RnActivity,里面可以封装若干个抽象方法,所有的RnActivity都有可能使用到的。

再然后,就可以新定义一个Activity,这个Activity继承,我们自定义的RnActivity。

在onCreate方法中,

 ReactRootView mReactRootView = new ReactRootView(this);
 ReactInstanceManager.Builder builder = ReactInstanceManager.builder();
 builder.setApplication(Application.getInstance());
 builder.setJSMainModuleName("index.android");
        builder.addPackage(new MainReactPackage());
        builder.setUseDeveloperSupport(BuildConfig.DEBUG);
        builder.setInitialLifecycleState(LifecycleState.RESUMED);
        builder.setJSBundleFile(bundlePath);
        mReactInstanceManager = builder.build();
        // 注意这里的HelloWorld必须对应“index.android.js”中的
        // “AppRegistry.registerComponent()”的第一个参数
        mReactRootView.startReactApplication(mReactInstanceManager, "HelloWorld", null);

以上也可以称之为RN更新界面的方法。

这个bundlePath,就可以是热更新的Bundle文件在终端的位置。
这样就能正常使用,并增加了很多的自由度。

你可能感兴趣的:(RN)