现有的Android 原生项目里面集成RN 页面的学习和踩坑之路方法2

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30519365/article/details/79334978

1.前面几个步骤都是一样的一直到第8步集成RN的页面代码

上篇地址:
http://note.youdao.com/noteshare?id=3619fb52aae9cd06f3989b12e48b849a
上篇是集成一个Activity实现一个接口
本篇主要是这样的集成一个类
代码如下

package com.org.gsc.androidinrndemo;

import com.facebook.react.ReactActivity;

/**
 * .::::.
 * .::::::::.
 * :::::::::::  FUCK YOU
 * ..:::::::::::'
 * '::::::::::::'
 * .::::::::::
 * '::::::::::::::..
 * ..::::::::::::.
 * ``::::::::::::::::
 * ::::``:::::::::'        .:::.
 * ::::'   ':::::'       .::::::::.
 * .::::'      ::::     .:::::::'::::.
 * .:::'       :::::  .:::::::::' ':::::.
 * .::'        :::::.:::::::::'      ':::::.
 * .::'         ::::::::::::::'         ``::::.
 * …:::           ::::::::::::'              ``::.
 * ```` ':.          ':::::::::'                  ::::..
 * '.:::::'                    ':'````..
 * * 作者:jiangnanyizhou on 2018/2/12 10:53
 * 邮箱:[email protected]
 */
public class RNPage extends ReactActivity {
    /**
     * Returns the name of the main component registered from JavaScript.
     * This is used to schedule rendering of the component.
     *   //这里的AndroidRnDemoApp必须对应“index.js”中的“AppRegistry.registerComponent()”的第一个参数
     */
    @Override
    protected String getMainComponentName() {
        return "AndroidRnDemoApp";
    }

}

2,这种需要重写Application

核心代码如下

package com.org.gsc.androidinrndemo;

import android.app.Application;

import com.facebook.react.ReactApplication;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.modules.network.OkHttpClientProvider;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
import com.org.gsc.androidinrndemo.btns.MyReactBtnPackage.MyReactBtnPackage;

import java.util.Arrays;
import java.util.List;

public class MainApplication extends Application implements ReactApplication {

  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
    @Override
    public boolean getUseDeveloperSupport() {
      return BuildConfig.DEBUG;
    }

    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
          new MainReactPackage(),
              new MyReactPackage(),
              new MyReactBtnPackage()



      );
    }

    @Override
    protected String getJSMainModuleName() {
      return "index";
    }
  };

  @Override
  public ReactNativeHost getReactNativeHost() {
    return mReactNativeHost;
  }

  @Override
  public void onCreate() {
    super.onCreate();
//
//    OkHttpClientProvider.replaceOkHttpClient(HttpsOkHttpClient.initCustomOkHttpClient());
    SoLoader.init(this, /* native exopackage */ false);
  }
}

猜你喜欢

转载自blog.csdn.net/qq_30519365/article/details/79334978