npm install --save @tingyunapp/react-native-tingyunapp
若 React Native 版本大于等于 0.59,在根目录的 metro.config.js 的 transformer 中添加 transformer.babelTransformerPath;
若 React Native 版本等于 0.57 或 0.58,在根目录的 rn-cli.config.js 的 transformer 中添加 transformer.babelTransformerPath , 示例如下:
若项目使用react-native bundle 打包且配置了–config参数,请在配置的js文件中添加 transformer.babelTransformerPath
module.exports = {
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false,
},
}),
babelTransformerPath: require.resolve('@tingyunapp/react-native-tingyunapp/src/NBSTransformer.js'),
},
};
React Native 版本小于0.57
在项目根目录下创建rn-cli.config.js
(如果没有该文件)添加如下内容:
若项目使用react-native bundle 打包且配置了–config参数,请在配置的js文件中添加getTransformModulePath
module.exports = {
getTransformModulePath() {
return require.resolve('@tingyunapp/react-native-tingyunapp/src/NBSTransformer.js');
},
getSourceExts() {
return ['js'];
}
}
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";
}
};