基本类
类
类 | 描述 |
---|---|
InAppProduct | 已注册到商店的产品。 |
InAppStore | 管理内购的主要入口点。 |
InAppTransaction | 包含关于外部应用商店中交易的详细信息。 |
InAppPurchaseBackend | 与外部商店通信。 |
InAppProduct
InAppProduct封装了在InAppStore中注册并确认存在的外部商店中的产品。它有一个标识符,与外部商店中产品的标识符相匹配,有一个价格是从外部商店检索的,并且有一个产品类型。
产品类型可以是可消耗
或可解锁
。只要每次交易由应用程序明确完成,即可无限次购买可消耗产品。可解锁类型只能购买一次。
InAppProduct有5个可返回变量price
、title
、description
identifier
和productType
。所有返回QString
,除了productType。
ProductType是一个枚举类型,如果它是可消耗的,则返回0
;如果是可解锁的,则返回1
。
enum ProductType { Consumable, Unlockable };
请检查派生类AndroidInAppProduct
(适用于Android)和IosInAppProduct
(适用于iOS)。
InAppStore
管理内购的主要入口点。它是AndroidInAppProduct
和IosInAppProduct
的基类。
InAppStore用于以跨平台方式管理应用程序中的内购。根据编译器,InAppStore使用宏
检查可用的平台。
void InAppStore::setupBackend() { #ifdef Q_OS_ANDROID d->backend = new AndroidInAppPurchaseBackend; #endif #ifdef Q_OS_IOS d->backend = new IosInAppPurchaseBackend; #endif d->backend->setStore(this); ...
初始化商店
在演示中进入商店页面时,InAppStore将所有信号连接到setupBackend()函数中的相关槽。然后使用registerProduct()函数将外部商店中注册的每种产品的产品ID和产品类型注册到已注册的QHash registeredProducts中。
注册产品是异步的,并且最终将找到来自外部商店的产品时,将发出productRegistered()信号。
void InAppStore::registerProduct(InAppProduct *product) { d->registeredProducts[product->identifier()] = product; emit productRegistered(product); }
完成购买
在商店中成功注册项目后,用户可以通过按应用商店页面上的产品之一来购买它们。QML将调用AndroidInAppProduct或IosInAppProduct
中的product.purchase()函数,这将在外部商店中打开购买流程。
无论购买成功与否,一旦完成购买,都会将transactionReady信号发送到InAppProductQmlType
,通知QML开始完成交易。
恢复购买
在演示中,可解锁的购买将保存在应用的存储中。通过清除存储,用户将丢失可解锁的购买,并且无法再次购买,因为根据外部存储,它已经被拥有。
您可以在应用的商店页面上使用 恢复购买
按钮来恢复您可解锁的购买。恢复购买按钮调用 restorePurchases() 函数,并将检查外部存储中是否已拥有的购买。它发出 transactionRedy() 信号以最终完成和恢复购买。
InAppStore 没有派生类。
InAppTransaction
InAppTransaction 包含关于外部应用商店中交易的信息,通常是通过调用 InAppProduct::purchase() 得到的结果。当用户完成购买流程(例如,通过输入他们的密码确认购买)时,包含该产品的 InAppStore 实例将发出 InAppStore::transactionReady() 信号,其中包含有关交易的数据。
status() 函数提供有关交易是否成功的详细信息。如果成功,则应用应采取适当的行动。当执行必要的操作后,应调用 finalize()。无论交易状态如何,都应调用 finalize() 函数。
检查为安卓的 AndroidInAppTransaction
和为 iOS 的 IosInAppTransaction
设计的派生类。
InAppPurchaseBackend
InAppPurchaseBackend
用于为 AndroidInAppPurchaseBackend
和 IosInAppPurchaseBackend
创建派生类。
© 2024 The Qt Company Ltd。此处包含的文档贡献是各自所有者的版权。此处提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 条款许可的。Qt 和相关标志是 The Qt Company Ltd. 在芬兰和/或世界其他国家的商标。所有其他商标均为各自所有者的财产。