purchases_flutter如何使用

我在使用purchases_flutter插件时遇到了一些问题。这个插件应该如何正确集成到Flutter项目中?需要配置哪些必要的参数?能否提供一个完整的示例代码说明如何进行应用内购买和订阅功能的实现?另外,如何处理购买状态和恢复购买的情况?在调试过程中需要注意哪些常见问题?

2 回复

purchases_flutter是RevenueCat的Flutter插件,用于管理应用内购买和订阅。使用方法:

  1. 安装配置:
dependencies:
  purchases_flutter: ^4.0.0
  1. 初始化(在main.dart中):
await Purchases.setup('your_api_key');
  1. 获取产品信息:
List<Package> packages = await Purchases.getPackages();
  1. 发起购买:
await Purchases.purchasePackage(selectedPackage);
  1. 恢复购买:
CustomerInfo customerInfo = await Purchases.restorePurchases();
  1. 获取用户信息:
CustomerInfo customerInfo = await Purchases.getCustomerInfo();

主要功能:

  • 管理订阅状态
  • 处理续费和退款
  • 用户身份管理
  • 数据分析

记得先在RevenueCat后台配置产品和权限,并在iOS和Android项目中配置应用内购买。

更多关于purchases_flutter如何使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


purchases_flutter 是 RevenueCat 的 Flutter 插件,用于管理应用内购买和订阅。以下是基本使用方法:

1. 安装配置

pubspec.yaml

dependencies:
  purchases_flutter: ^5.0.0

2. 初始化设置

import 'package:purchases_flutter/purchases_flutter.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 RevenueCat
  await Purchases.setLogLevel(LogLevel.debug);
  await Purchases.configure(
    PurchasesConfiguration('your_public_sdk_key')
      ..appUserID = null // 自动生成用户ID
  );
  
  runApp(MyApp());
}

3. 获取产品信息

// 获取所有可用产品
try {
  Offerings offerings = await Purchases.getOfferings();
  if (offerings.current != null) {
    List<Package> packages = offerings.current!.availablePackages;
    // 显示产品列表
  }
} catch (e) {
  print('获取产品失败: $e');
}

4. 进行购买

// 购买产品
try {
  CustomerInfo customerInfo = await Purchases.purchasePackage(package);
  // 检查购买状态
  if (customerInfo.entitlements.all['premium']?.isActive == true) {
    // 用户已购买高级功能
  }
} on PlatformException catch (e) {
  // 处理购买错误
  if (e.code == PurchasesErrorCode.purchaseCancelledError) {
    print('用户取消购买');
  }
}

5. 恢复购买

// 恢复之前的购买
try {
  CustomerInfo customerInfo = await Purchases.restorePurchases();
  // 检查权益状态
} catch (e) {
  print('恢复购买失败: $e');
}

6. 监听购买状态

// 添加购买状态监听器
Purchases.addCustomerInfoUpdateListener((customerInfo) {
  // 当用户购买状态变化时触发
  if (customerInfo.entitlements.all['premium']?.isActive == true) {
    // 更新UI
  }
});

主要功能特点:

  • 订阅管理:自动处理订阅状态
  • 用户识别:跨设备同步购买记录
  • 分析统计:提供详细的收入分析
  • 多平台支持:iOS 和 Android

记得在 iOS 和 Android 平台上分别配置应用内购买权限,并在 RevenueCat 仪表板中设置产品和订阅项。

回到顶部