迁移指南:Flutter Adapty SDK 3.10.0
Adapty SDK 3.10.0 是一个重大版本发布,带来了一些改进,但可能需要您执行以下迁移步骤:
- 更新
makePurchase方法,使用AdaptyPurchaseParameters替代单独的参数。 - 在
AdaptyPaywall模型中,将vendorProductIds替换为productIdentifiers。
更新 makePurchase 方法
makePurchase 方法现在使用 AdaptyPurchaseParameters 替代原有的 subscriptionUpdateParams 和 isOfferPersonalized 参数。这提供了更好的类型安全性,并为未来扩展购买参数提供了便利。
- final purchaseResult = await adapty.makePurchase(
- product: product,
- subscriptionUpdateParams: subscriptionUpdateParams,
- isOfferPersonalized: true,
- );
+ final parameters = AdaptyPurchaseParametersBuilder()
+ ..setSubscriptionUpdateParams(subscriptionUpdateParams)
+ ..setIsOfferPersonalized(true)
+ ..setObfuscatedAccountId('your-account-id')
+ ..setObfuscatedProfileId('your-profile-id');
+ final purchaseResult = await adapty.makePurchase(
+ product: product,
+ parameters: parameters.build(),
+ );
如果不需要额外参数,可以直接使用:
final purchaseResult = await adapty.makePurchase(
product: product,
);
更新 AdaptyPaywall 模型的用法
vendorProductIds 属性已被弃用,推荐使用 productIdentifiers。新属性返回 AdaptyProductIdentifier 对象而非简单字符串,提供了更结构化的产品信息。
- paywall.vendorProductIds.map((vendorId) =>
- ListTextTile(title: vendorId)
- ).toList()
+ paywall.productIdentifiers.map((productId) =>
+ ListTextTile(title: productId.vendorProductId)
+ ).toList()
AdaptyProductIdentifier 对象通过 vendorProductId 属性提供对供应商产品 ID 的访问,在保持原有功能的同时,为未来的功能增强提供了更好的结构支持。
向后兼容性
两项更改均保持向后兼容:
makePurchase中的旧参数已被弃用,但仍然可以正常使用vendorProductIds属性已被弃用,但仍然可以访问- 现有代码将继续正常运行,但您会看到弃用警告
我们建议更新您的代码以使用新的 API,以确保未来的兼容性,并充分利用改进后的类型安全性和可扩展性。