跳到主要内容

React Native Bundle 部署

React 配置

  1. 安装依赖。

    npm install --save @tingyunapp/react-native-tingyunapp
  2. 配置Transform。

    • 若 React Native 版本大于等于 0.59,在根目录的 metro.config.js 的 transformer 中添加 transformer.babelTransformerPath。

    • 若 React Native 版本等于 0.57 或 0.58,在根目录的 rn-cli.config.js 的 transformer 中添加 transformer.babelTransformerPath , 示例如下:

      module.exports = {
      transformer: {
      getTransformOptions: async () => ({
      transform: {
      experimentalImportSupport: false,
      inlineRequires: false,
      },
      }),
      babelTransformerPath: require.resolve('@tingyunapp/react-native-tingyunapp/src/NBSTransformer.js'),
      },
      };

      说明若项目使用react-native bundle 打包且配置了--config参数,请在配置的js文件中添加 transformer.babelTransformerPath 。

    • 若React Native 版本小于0.57,在项目根目录下创建rn-cli.config.js(如果没有该文件)添加如下内容:

      module.exports = {
      getTransformModulePath() {
      return require.resolve('@tingyunapp/react-native-tingyunapp/src/NBSTransformer.js');
      },
      getSourceExts() {
      return ['js'];
      }
      }

      说明若项目使用react-native bundle 打包且配置了--config参数,请在配置的js文件中添加getTransformModulePath 。

Android Native项目配置

React Native 0.60 以下版本,SDK 桥接方法的类可能不会打包到 apk 中。你可以通过以下方法解决:

将 SDK 桥接类复制到 Android Native 项目中。

将 node_modules\@tingyunapp\react-native-tingyunapp\android\src\main\java\com\tingyun\app 目录下的 RNReactNativeTingyunappModule.java 和 RNReactNativeTingyunappPackage.java 两个类复制到 Native 项目中

在定义 ReactNativeHost 对象时,添加基调听云ReactPackage。

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 com.tingyun.app.RNReactNativeTingyunappPackage()//添加基调听云 ReactPackage
);
}

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