Skip to main content

React Native Bundle Deployment

React Configuration​

  1. Install dependencies

    npm install --save @tingyunapp/react-native-tingyunapp
  2. Configure Transform

    • If the React Native version is greater than or equal to 0.59, add transformer.babelTransformerPath to the transformer section in the metro.config.js file in the root directory.

    • If the React Native version is 0.57 or 0.58, add transformer.babelTransformerPath to the transformer section in the rn-cli.config.js file in the root directory. Example:

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

      Note: If the project uses react-native bundle for packaging and has configured the --config parameter, please add transformer.babelTransformerPath to the configured JavaScript file.

    • If the React Native version is less than 0.57, create a rn-cli.config.js file in the project root directory (if it does not exist) and add the following content:

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

      Note: If the project uses react-native bundle for packaging and has configured the --config parameter, please add getTransformModulePath to the configured JavaScript file.

Android Native Project Configuration​

For React Native versions below 0.60, the SDK bridge method classes may not be packaged into the APK. You can solve this by:

Copying the SDK bridge classes to the Android Native project.

Copy the RNReactNativeTingyunappModule.java and RNReactNativeTingyunappPackage.java classes from the node_modules\@tingyunapp\react-native-tingyunapp\android\src\main\java\com\tingyun\app directory to the Native project.

When defining the ReactNativeHost object, add the Tingyun 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()//Add the Tingyun ReactPackage
);
}

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