检索 Windows 商店中应用内购买的价格

Retrieving the price of an in-app purchase in Windows Store

现在有人知道如何从 windows 商店获取应用内购买/产品的价格吗?我已经阅读了我能找到的关于应用内购买的所有文档,但我看不出任何方法

我有一个 CurrentApp 对象,其中包含 LicenseInformation 和一个 LinkURI。后者是商店的 link,因此我可以使用 HttpRequest 从那里抓取信息,但这似乎是一个非常丑陋的 hack

有谁知道我想做什么?

获取应用内购买列表是通过 CurrentApp.loadListingInformationAsync 完成的,它会为您提供应用的 ListingInformation。从那里开始,其 productListings 集合包含您通过商店仪表板注册的所有应用内购买,无论类型如何(消耗品、耐用品等)。该集合是一个 MapView of ProductListing 对象,您会在其中找到适合在 UI 中显示的 formattedPrice

请注意,MapView 不支持索引查找。您可以使用其使用产品 ID 的查找方法,或者您可以使用此代码迭代 MapView:

var iterator = listing.productListings.first()
var product;
while (iterator.hasCurrent) {
    product = iterator.current.value;
    // Use product.productId, name, formattedPrice, and productType to generate your UI.
    iterator.moveNext();
};

请注意,价格的数值不包括在内,因为应用程序尝试在计算中使用它确实没有多大意义——价格可以针对不同的地区使用不同的货币单独设置.这就是 API 为您提供格式化价格的原因 - 已经本地化 - 因此您可以直接在 UI 中显示它而无需任何额外操作。

如果您需要数值,则必须以其他方式向您的应用提供该信息,例如包中内置的文件或您自己的 Web 服务。

我在我的免费电子书第 20 章中介绍了应用内购买的所有详细信息,Programming Windows Store Apps with HTML, CSS, and JavaScript, 2nd Edition