【问题标题】:Retrieving the price of an in-app purchase in Windows Store在 Windows 应用商店中检索应用内购买的价格
【发布时间】:2015-03-27 21:48:09
【问题描述】:

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

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

有谁知道如何做我想做的事?

【问题讨论】:

    标签: windows-store-apps in-app-purchase windows-store


    【解决方案1】:

    通过 CurrentApp.loadListingInformationAsync 获取应用内购买列表,它会为您提供应用的 ListingInformation。从那里,它的 productListings 集合包含您通过商店仪表板注册的所有应用内购买,无论类型如何(消耗品、耐用品等)。这个集合是 MapView 的 @ 987654322@ 对象,您可以在其中找到适合在 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 服务。

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

    【讨论】:

    • 接受并点赞。大约是我希望的完美答案。谢谢克雷格!我只有一个产品,所以迭代整个系列就可以了。
    • 对于一个产品,您只需使用 var product1 = listing.productListings.lookup("product1");或者通过 [ ] 运算符使用基于键的查找: var product1 = Listing.productListings["product1"];其中“product1”是您的产品 ID。这样你就可以跳过迭代。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    相关资源
    最近更新 更多