测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可 | MIT |
发布最后发布 | 2018年1月 |
SwiftSwift 版本 | 4.0 |
SPM支持 SPM | ✗ |
由 taisuke fujita 维护。
依赖于 | |
RxSwift | ~> 4.1.1 |
RxCocoa | ~> 4.1.1 |
RxStoreKit 是一个轻量级且易于使用的 Rx 支持 StoreKit(内购)。
import StoreKit
import RxSwift
import RxStoreKit
let disposeBag = DisposeBag()
let productRequest = SKProductsRequest(productIdentifiers: Set(["your app product id"]))
productRequest.rx.productsRequest
.subscribe(onNext: { product in
print(product)
}).disposed(by: disposeBag)
productRequest.start()
SKPaymentQueue.default().rx.restoreCompletedTransactions()
.subscribe(onNext: { queue in
// paymentQueueRestoreCompletedTransactionsFinished
print(queue)
}, onError: { error in
// restoreCompletedTransactionsFailedWithError
print(queue)
}).disposed(by: disposeBag)
let productRequest = SKProductsRequest(productIdentifiers: Set(["xxx.xxx.xxx"]))
productRequest.rx.productsRequest
.flatMap { response -> Observable<SKProduct> in
return Observable.from(response.products)
}
.flatMap { product -> Observable<SKPaymentTransaction> in
return SKPaymentQueue.default().rx.add(product: product)
}
.subscribe(onNext: { transition in
print(transition)
}).disposed(by: disposeBag)
productRequest.start()
下载内购内容
let productRequest = SKProductsRequest(productIdentifiers: Set(["xxx.xxx.xxx"]))
productRequest.rx.productsRequest
.flatMap { response -> Observable<SKProduct> in
return Observable.from(response.products)
}
.flatMap { product -> Observable<SKPaymentTransaction> in
return SKPaymentQueue.default().rx.add(product: product)
}
.flatMap { transaction -> Observable<SKDownload> in
return SKPaymentQueue.default().rx.start(downloads: transaction.downloads)
}
.subscribe(onNext: { download in
print(download)
}).disposed(by: disposeBag)
productRequest.start()
此库依赖于 RxSwift 和 RxCocoa
RxStoreKit 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。