flutter中如何获取in_app_purchase的displayprice
在Flutter中使用in_app_purchase插件时,如何正确获取商品的displayPrice?我在调用ProductDetails的displayPrice属性时,有时返回空字符串或格式不正确。是否有特定平台要求(如iOS/Android)或需要额外配置才能获取正确的价格显示格式?
2 回复
在Flutter中,使用in_app_purchase插件获取商品价格:
ProductDetails product = ...; // 商品对象
String price = product.price; // 获取价格
String displayPrice = product.rawPrice; // 获取带货币符号的显示价格
通过ProductDetails对象的rawPrice属性即可获取带格式的显示价格。
更多关于flutter中如何获取in_app_purchase的displayprice的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中,使用 in_app_purchase 插件获取商品的 displayPrice 可以通过以下步骤实现:
-
初始化插件并获取商品信息: 首先确保已添加
in_app_purchase依赖到pubspec.yaml,然后初始化插件并查询商品详情。 -
使用
ProductDetails对象: 查询成功后,商品信息会存储在ProductDetails对象中,其中包含price和displayPrice属性。displayPrice会自动根据用户的区域设置格式化价格(例如,添加货币符号)。
示例代码:
import 'package:in_app_purchase/in_app_purchase.dart';
// 初始化
final InAppPurchase _inAppPurchase = InAppPurchase.instance;
// 获取商品信息
Future<void> getProductPrice(String productId) async {
bool available = await _inAppPurchase.isAvailable();
if (!available) {
print('应用内购买不可用');
return;
}
Set<String> productIds = {productId};
ProductDetailsResponse response = await _inAppPurchase.queryProductDetails(productIds);
if (response.notFoundIDs.isNotEmpty) {
print('未找到商品: ${response.notFoundIDs}');
return;
}
List<ProductDetails> products = response.productDetails;
if (products.isNotEmpty) {
ProductDetails product = products.first;
String displayPrice = product.displayPrice; // 获取格式化价格
print('商品价格: $displayPrice');
}
}
说明:
- 调用
queryProductDetails方法传入商品ID集合。 - 从
ProductDetails中直接访问displayPrice属性即可获取格式化后的价格字符串。 - 确保在真实设备上测试,并配置好应用内购买项目。
这种方法简单直接,适用于获取单个或多个商品的价格显示。

