gpt4 book ai didi

android - 图书馆 billing.ktx 促进了什么 "idiomatic Kotlin"?

转载 作者:行者123 更新时间:2023-12-04 01:05:23 24 4
gpt4 key购买 nike

在研究我的问题的答案 here我发现(经过几天非常令人沮丧的工作)引用了一些开发人员页面声称的 kotlin 计费库“billing.ktx”

contains Kotlin extensions and coroutines support that enable you towrite idiomatic Kotlin when using Google Play's billing system


但既没有提供详细信息,也没有提供更多信息的链接。 Play 计费示例, "Classy Taxi" and "TrivialDrive"已被重写为使用 Kotlin,但几乎没有“惯用的 Kotlin”,当然也没有使用协程,也没有使用这个库。他们现在已经两岁了,在这个瞬息万变的舞台上展示了​​他们的年龄。
我的问题是这个库在惯用的 Kotlin 甚至协程支持方面提供了什么?在使用这个库之前,我在一些计费客户端功能方面取得了一些进展(如在引用的问题中所见),但我看不出使用它有什么不同。更具体地说,“launchBillingFlow”看起来无法转换,但真的是这样吗?
只需链接到某个地方以查找信息就足够了。为什么很难为计费客户端找到更多的类定义?

最佳答案

我找不到任何文件。此答案中的所有内容均来自查看 billing-ktx当我将此库的依赖项添加到我的项目时出现的 aar。
这个库看起来非常小。它在 BillingClient 上提供了三个新的“结果”类以及四个扩展功能。用 suspend fun 替换基于回调的代码s。

package com.android.billingclient.api

public suspend fun BillingClient.acknowledgePurchase(params: AcknowledgePurchaseParams): BillingResult { /* compiled code */ }
public suspend fun BillingClient.consumePurchase(params: ConsumeParams): ConsumeResult { /* compiled code */ }
public suspend fun BillingClient.queryPurchaseHistory(skuType: String): PurchaseHistoryResult { /* compiled code */ }
public suspend fun BillingClient.querySkuDetails(params: SkuDetailsParams): SkuDetailsResult { /* compiled code */ }
有了这些,你可以在协程中编写:
val result = billingClient.querySkuDetails(params.build())
// you can now access result.billingResult or result.skuDetailsList
而不是像文档中出现的那样:
billingClient.querySkuDetailsAsync(params.build()) { billingResult, skuDetailsList ->
// Process the result.
}

关于android - 图书馆 billing.ktx 促进了什么 "idiomatic Kotlin"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66678667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com