前端开发
在 App 中集成 RevenueCat Customer…
当用户想在 iOS、Android、KMP、Flutter 或 React Native 应用中添加开箱即用的订阅管理界面(取消、退款、恢复购买、联系客服)时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
在 App 中集成 RevenueCat特定
解决思路
- 确认前置条件:已运行 integrate-revenuecat,且 Purchases.configure(…) 成功执行,否则 Customer Center 无法加载客户数据。
- 检测平台:按顺序检查工作目录,取第一个匹配项。1) React Native:package.json 含 react-native-purchases 或 react-native 依赖,Customer Center 在 react-native-purchases-ui 中,读取 platforms/react-native.md;若同时有 expo 依赖则标记为 Expo 项目。2) Flutter:项目根目录存在 pubspec.yaml,Customer Center 在 purchases_ui_flutter 中,读取 platforms/flutter.md。3) Kotlin Multiplatform:build.gradle.kts 含 kotlin { … } 多平台块,或依赖 com.revenuecat.purchases:purchases-kmp*,Customer Center composable 在 purchases-kmp-ui 中,读取 platforms/kmp.md。4) Android 原生:build.gradle(.kts) 应用了 com.android.application 且非 KMP,Customer Center composable 在 com.revenuecat.purchases:purchases-ui 中,读取 platforms/android.md。5) iOS 原生:项目根目录有 Package.swift、*.xcodeproj、*.xcworkspace 或 Podfile,CustomerCenterView 在 RevenueCatUI 中,读取 platforms/ios.md。若多个匹配(如 Flutter 项目中的 ios/ 文件夹),选择拥有构建的最外层项目;仍不确定则询问用户。
- 在 RevenueCat 后台的 Customer Center 区域配置 UI:操作、文案、促销优惠、退款流程、取消问卷选项、客服联系方式。未配置时视图只渲染最小默认布局,用户几乎看不到有用内容。
- 确保使用已识别身份且有购买记录的用户:匿名且从未购买的用户只会看到空白或仅恢复状态。若 App 支持登录,在打开 Customer Center 前调用 Purchases.logIn(userId)。
- 将 Customer Center 与 paywall 分开:在设置页暴露一个「管理订阅」入口打开 Customer Center;paywall 用于新购买,Customer Center 用于现有订阅者。
- 让 UI 自己驱动流程:恢复、取消、退款、促销优惠流程都在组件内运行。监听生命周期回调(onRestoreCompleted、onRefundRequestStarted、onManagementOptionSelected、onPromotionalOfferSucceeded 等)以在 App 代码中响应,而不是驱动流程。
- 注意平台可用性差异:iOS 支持 Customer Center 最久,Android、KMP、Flutter、React Native 随后。平台文件会标注缺口。退款请求是 iOS 独有操作(仅 Apple 提供应用内退款请求);Android 上「管理订阅」选项会跳转到 Google Play 订阅页面。
- 若已安装 SDK 版本低于 Customer Center 支持版本,回退到手动订阅管理界面:用 Purchases.customerInfo() 展示用户活跃权益,提供 Purchases.restorePurchases() 按钮,并链接到商店的订阅管理 URL;若用户想要完整 Customer Center,提示升级 SDK。
- 读取与检测结果匹配的平台文件(platforms/ios.md、platforms/android.md、platforms/kmp.md、platforms/flutter.md、platforms/react-native.md),每个文件自包含:安装命令、展示 Customer Center 的精确代码片段、回调形状。
- 验证前不要声称集成完成:1) 项目在目标平台构建成功。2) 用至少有一个活跃沙盒订阅的测试用户登录 App,触发打开 Customer Center 的代码路径,UI 加载且订阅出现在列表中。3) 至少一个已配置操作端到端运行:最简单的是点击 Restore purchases,确认恢复完成回调触发且 customerInfo.entitlements.active 映射非空;若后台配置了 Cancel/Refund/Support 操作,验证对应回调(onManagementOptionSelected、onRefundRequestStarted 等)在用户点击时触发。4) 关闭 Customer Center 触发 onDismiss 回调。
- 若 Customer Center 打开但为空,说明登录用户无购买记录,或后台 Customer Center 区域未配置;在后台修复、重新加载并重试。
适用边界 · 注意事项
- 未先完成 integrate-revenuecat 集成或 Purchases.configure(…) 未成功时。
- 用户是匿名且从未购买过任何商品时(只会看到空白或仅恢复状态)。
- 已安装 SDK 版本低于 Customer Center 支持版本且用户不愿升级 SDK 时(应改用回退的手动订阅管理界面)。