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 可以通过以下步骤实现:

  1. 初始化插件并获取商品信息: 首先确保已添加 in_app_purchase 依赖到 pubspec.yaml,然后初始化插件并查询商品详情。

  2. 使用 ProductDetails 对象: 查询成功后,商品信息会存储在 ProductDetails 对象中,其中包含 pricedisplayPrice 属性。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 属性即可获取格式化后的价格字符串。
  • 确保在真实设备上测试,并配置好应用内购买项目。

这种方法简单直接,适用于获取单个或多个商品的价格显示。

回到顶部