RxStoreKit 1.2.1

RxStoreKit 1.2.1

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最后发布2018年1月
SwiftSwift 版本4.0
SPM支持 SPM

taisuke fujita 维护。



 
依赖于
RxSwift~> 4.1.1
RxCocoa~> 4.1.1
 

  • 作者
  • Taisuke Fujita



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()

安装

此库依赖于 RxSwiftRxCocoa

许可

RxStoreKit 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。