VSStoreKit 1.0.4

VSStoreKit 1.0.4

测试已测试
Lang语言 SwiftSwift
许可证 MIT
Released最新版本2019年5月
SPM支持 SPM

Vladimir Shutyuk 维护。



  • Vladimir Shutyuk

VSStoreKit

Build Status codecov.io Version License Platform

Icon

VSStoreKit 是一个易于使用的库,您可以使用它在其 iOS 应用中进行应用内购买。

要求

  • Swift 4.2
  • Xcode 10
  • iOS 8.0+

安装

CocoaPods (推荐)

use_frameworks!

pod 'VSStoreKit'

文档

阅读文档。由jazzy生成。由GitHub Pages托管。

生成

$ ./build_docs.sh

预览

$ open index.html -a Safari

入门

import VSStoreKit

设计

本库包含五个主要组件,其职责如下

  1. StoreAccess - 请求Store中的产品,提供价格和购买产品等详细信息
  2. PurchasedProductsProtocol - 符合此协议的实例存储完成购买
  3. LocalProductsDataSource - 符合此协议的实例提供关于应用中可售产品的信息
  4. ProductsDataSource - 也提供关于产品的销售信息,但结合了本地和从Store接收到的产品信息
  5. StoreAccessObserver - 监听StoreAccess状态变更并通过回调方法通知客户端

示例

// 1. Create an instance conforming to PurchasedProductsProtocol 
let puchasedProducts: PurchasedProductsProtocol = PurchasedProducts()

// 2. Provide StoreAccess purchaseCompletionHandler so it can mark products as purchased
let storeAccess = StoreAccess.shared
storeAccess.purchaseCompletionHandler = { purchasedProductIdentifier in
    puchasedProducts.markProductAsPurchased(purchasedProductIdentifier)
}

// 3. Create an instance conforming to LocalProductsDataSource with your products (in-app purchases)
let localProducts: LocalProductsDataSource = LocalProducts()

// 4. Request products from the store
storeAccess.requestProductsWithIdentifiers(localProducts.productIdentifiers)

// 5. Instantiate ProductsDataSource object that you will use to populate your UITableView, UICollectionView or whatever with products (in-app purchases)
let productsDataSource = ProductsDataSource(localProducts: localProducts, storeProducts: storeAccess)

// 6. Buy product
let productIdentifier = productsDataSource.identifierForProductAtIndex(index)
storeAccess.purchaseProductWithIdentifier(productIdentifier)

// 7. Observe StoreAccess state change with help of StoreAccessObserver by providing it optional handlers for the states you are interested in
let storeAccessObserver = StoreAccessObserver()
storeAccessObserver.receivedProductsStateHandler = {
    // reload your products presentation
}
storeAccessObserver.purchasedStateHandler = {
    // reload your products presentation
}

作者

弗拉基米尔·舒图克,[email protected]

许可证

VSStoreKit 在 MIT 许可证下可用。更多信息请参阅 LICENSE 文件。