Hướng dẫn migration lên Flutter Adapty SDK 3.10.0
Adapty SDK 3.10.0 là một bản phát hành lớn mang lại một số cải tiến, tuy nhiên có thể yêu cầu bạn thực hiện một số bước migration:
- Cập nhật phương thức
makePurchaseđể sử dụngAdaptyPurchaseParametersthay vì các tham số riêng lẻ. - Thay thế
vendorProductIdsbằngproductIdentifierstrong modelAdaptyPaywall.
Cập nhật phương thức makePurchase
Phương thức makePurchase hiện sử dụng AdaptyPurchaseParameters thay vì các đối số subscriptionUpdateParams và isOfferPersonalized riêng lẻ. Điều này giúp đảm bảo kiểu dữ liệu an toàn hơn và cho phép mở rộng các tham số mua hàng trong tương lai.
- 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(),
+ );
Nếu không cần thêm tham số nào, bạn có thể sử dụng đơn giản như sau:
final purchaseResult = await adapty.makePurchase(
product: product,
);
Cập nhật cách sử dụng model AdaptyPaywall
Thuộc tính vendorProductIds đã bị deprecated và được thay thế bằng productIdentifiers. Thuộc tính mới trả về các đối tượng AdaptyProductIdentifier thay vì chuỗi đơn giản, cung cấp thông tin sản phẩm có cấu trúc hơn.
- paywall.vendorProductIds.map((vendorId) =>
- ListTextTile(title: vendorId)
- ).toList()
+ paywall.productIdentifiers.map((productId) =>
+ ListTextTile(title: productId.vendorProductId)
+ ).toList()
Đối tượng AdaptyProductIdentifier cung cấp quyền truy cập vào vendor product ID thông qua thuộc tính vendorProductId, giữ nguyên chức năng như cũ trong khi cung cấp cấu trúc tốt hơn cho các cải tiến trong tương lai.
Tương thích ngược
Cả hai thay đổi đều duy trì tương thích ngược:
- Các tham số cũ trong
makePurchaseđã bị deprecated nhưng vẫn hoạt động bình thường - Thuộc tính
vendorProductIdsđã bị deprecated nhưng vẫn có thể truy cập được - Code hiện tại sẽ tiếp tục hoạt động, mặc dù bạn sẽ thấy các cảnh báo deprecation
Chúng tôi khuyến nghị cập nhật code của bạn để sử dụng các API mới nhằm đảm bảo khả năng tương thích trong tương lai và tận dụng tính an toàn kiểu dữ liệu và khả năng mở rộng được cải thiện.