55 lines
1.4 KiB
Markdown
55 lines
1.4 KiB
Markdown
# RxStoreKit
|
|
|
|
[](https://swiftpackageindex.com/453jerry/RxStoreKit)
|
|
[](https://swiftpackageindex.com/453jerry/RxStoreKit)
|
|
Reactive extensions of StoreKit
|
|
|
|
## How to use
|
|
|
|
### Request SKProduct
|
|
|
|
Create observable sequence of responses for SKProductRequest and subscribe it
|
|
|
|
``` swift
|
|
SKProduct.rx.request(with: ["xxxxx"])
|
|
.subscribe(onNext: { response in
|
|
let products = response.products
|
|
})
|
|
.dispose()
|
|
```
|
|
|
|
or
|
|
|
|
```swift
|
|
let request = SKProductsRequest.init(productIdentifiers: ["product_id"])
|
|
request.rx.response.subscribe { event in
|
|
switch event {
|
|
case .next(let response):
|
|
let products = response.products
|
|
default:
|
|
return
|
|
}
|
|
}
|
|
.dispose()
|
|
```
|
|
|
|
|
|
### Subscribe update payment transactons
|
|
|
|
```swift
|
|
SKPaymentQueue.default().rx.updatedTransaction
|
|
.subscribe(onNext: { transaction in
|
|
// Do what you want
|
|
})
|
|
.dispose()
|
|
```
|
|
|
|
### Subscribe product identifiers with revoked entitlements
|
|
|
|
```swift
|
|
paymentQueue.rx.productIdentifiersWithRevokedEntitlements
|
|
.subscribe { productIdentifier in
|
|
// Do what you want
|
|
}
|
|
```
|