UNPKG

react-native-gysdk

Version:
179 lines (131 loc) 4.57 kB
# react-native-gysdk `react-native-gysdk` 是个推官方开发的 React Native 插件,用于快速集成推送功能,助力开发者高效实现消息推送服务。 --- ## 环境要求 - **React Native 版本**: - `react`: 18.3.1 - `react-native`: 0.75.4 - **插件版本**: `react-native-gysdk` 1.0.6 **注意**: - 请确保项目环境与上述版本兼容。 - 部分功能在 Android iOS 平台上的 API 实现有所不同,请参考 `index.js` `index.d.ts` 中的 API 注释。 --- ## 1. 安装 ### 1.1 自动安装 在项目根目录下执行以下命令: ```bash # 步骤 1:添加 npm 包依赖 npm install react-native-gysdk@latest --save # 步骤 2:链接 iOS 原生代码(适用于 iOS Pod 项目) npx pod-install # 步骤 2:链接(适用于非 Autolinking 项目或 iOS 非 Pod 项目) react-native link ``` ### 1.2 示例代码 查看完整示例代码: - [Android 示例](example/AndroidDemo) - [iOS 示例](example/iOSDemo) --- ## 2. 配置 ### 2.1 获取 App ID 访问 [个推官网](https://dev.getui.com) 注册并在后台获取 `appId`。 ### 2.2 Android 配置 #### 2.2.1 AndroidManifest.xml `AndroidManifest.xml` `<application>` 节点中添加以下配置: ```xml <manifest> <application> <meta-data android:name="GETUI_APPID" android:value="你的appid"/> <meta-data android:name="GT_INSTALL_CHANNEL" android:value=""/> </application> </manifest> ``` #### 2.2.2 app/build.gradle 配置签名信息,确保调试和发布版本的签名正确: ```gradle signingConfigs { debug { storeFile file('debug.keystore') storePassword 'android' keyAlias 'androiddebugkey' keyPassword 'android' } } buildTypes { debug { signingConfig signingConfigs.debug } release { // 配置 release 签名 } } ``` #### 2.2.3 混淆配置 如果启用 ProGuard 混淆,请在 `proguard-rules.pro` 中添加以下规则: ```proguard # 移动 SDK (5.9.1) -dontwarn com.cmic.sso.sdk.** -keep class com.cmic.sso.sdk.** {*;} # 移动 SDK (5.9.3,包名变更) -dontwarn com.cmic.gen.sdk.** -keep class com.cmic.gen.sdk.** {*;} # 电信 SDK -dontwarn cn.com.chinatelecom.** -keep class cn.com.chinatelecom.** {*;} # 联通在线 -dontwarn com.unicom.online.account.shield.** -keep class com.unicom.online.account.shield.** {*;} -keep public class android.net.GyConnectivityManager {public *;} # 个验 SDK -dontwarn com.g.gysdk.** -keep class com.g.gysdk.** {*;} # 联通相关 -keep class com.unicom.online.account.kernel.** {*;} -dontwarn org.bouncycastle.** -keep class org.bouncycastle.** {*;} # 个推 GTC -keep class com.getui.gtc.** {*;} -keepattributes Signature, InnerClasses, EnclosingMethod, Exceptions, *Annotation* -keep class com.getui.gtc.dyc.** {*;} -keep class com.getui.gtc.dim.** {*;} -keep class com.getui.gtc.base.** {*;} -keep class com.igexin.base.** {*;} ``` ### 2.3 iOS 配置 #### 2.3.1 使用 CocoaPods 安装 如果你的 React Native 项目通过 CocoaPods 集成,请按照以下步骤操作: 1. `Podfile` 的对应 `target` 中添加以下代码: ```ruby pod 'GySdkRN', :path => '../node_modules/react-native-gysdk' ``` 2. 在终端执行以下命令: ```bash pod install ``` **注意**: - 使用 CocoaPods 安装时,不要运行 `react-native link`,否则可能导致冲突。 - 如果在 iOS 工程中找不到头文件,请在 `TARGETS -> Build Settings -> Search Paths -> Header Search Paths` 中添加以下路径: ``` $(SRCROOT)/../node_modules/react-native-gysdk/ios/RCTGetuiModule ``` --- ## 3. API 调用与消息订阅 - Android iOS 平台的 API 实现存在差异,请参考 `index.js` `index.d.ts` 中的 API 注释。 - 示例代码: - [Android 示例](example/AndroidDemo) - [iOS 示例](example/iOSDemo) --- ## 4. iOS 注意事项 - 确保正确配置 CocoaPods,避免与 `react-native link` 冲突。 - 检查头文件路径设置,确保编译时能正确找到插件的头文件。 --- ## 5. 常见问题 - **问题**:Android 混淆后应用崩溃? - **解决**:检查 `proguard-rules.pro` 是否包含所有必要的混淆规则。 - **问题**:iOS 编译时找不到头文件? - **解决**:在 Xcode `Header Search Paths` 中添加插件路径。 - **问题**:API 调用无响应? - **解决**:检查 `appId` 是否正确配置,并确保已调用 `startSdk` 初始化。 --- ## 6. 支持 如需进一步帮助,请访问 [个推官网](https://dev.getui.com) 或联系技术支持。