InPlayer's iOS API Client Wrapper
- iOS 10.0+
- Xcode 10.1+
- Swift 4.2+
CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:
$ gem install cocoapods
To integrate InPlayerSDK into your Xcode project using CocoaPods, specify it in your Podfile
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
target '<Your Target name>' do
use_frameworks!
pod 'InPlayerSDK'
end
Then, run the following command:
$ pod install
Note: InPlayerSDK is build with submodules. So if you like you can add it like this in your Podfile:
pod 'InPlayerSDK' (all features, default)
pod 'InPlayerSDK/Core' (includes Core features - Account, Asset, Subscription)
pod 'InPlayerSDK/Payment' (includes Core and Payment modules)
pod 'InPlayerSDK/Notification' (includes Core and Notification modules)
This SDK has dependencies that it relies on. The list consists of:
pod 'Alamofire', '5.0.0.beta.1'
pod 'AWSIoT', '2.9.3' (only Notifications module)
Import InPlayerSDK
to your file.
To intialize SDK and start using it, you must first do the following steps:
Create configuration object:
let configuration = InPlayer.Configuration(clientId: "<YOUR CLIENT ID HERE>", referrer: "<REFERRER URL GOES HERE>" environment: <ENVIORMENT TYPE>)
Initialize InPlayer:
InPlayer.initialize(configuration: configuration)
InPlayerSDK consists out of five services:
Account
, Asset
, Payment
, Subscription
and Notification
.
Account related methods.
Authenticate method:
InPlayer.Account.authenticate(username: "<YOUR USERNAME>", password: "<YOUR PASSWORD>", success: { (authorization) in
// Successfully logged in.
}, failure: { (error) in
// Some error occured.
})
Asset related methods:
Get asset details:
InPlayer.Asset.getAsset(id: <ITEM_ ID>, success: { (item) in
// Successfully obtained item details.
}, failure: { error in
// Some error occured.
}
Payment related methods:
Validate purchase:
InPlayer.Payment.validate(receiptString: <RECEIPT_STRING>, productIdentifier: <PRODUCT_IDENTIFIER>, success: {
// Successfully validated receipt
}, failure: { (error) in
// Some error occured
})
Subscription related methods:
Get account subscriptions:
InPlayer.Subscription.getSubscriptions(page: 1, limit: 10, success: { (list) in
// Successfully obtained subscription list
}, failure: { (error) in
// Some error occured
})
Notification service has three methods:
public static func subscribe(onStatusChanged: @escaping ( _status: InPlayerNotificationStatus) -> Void,
onMessageReceived: @escaping (_ notification: InPlayerNotification) -> Void,
onError: @escaping (_ error: InPlayerError) -> Void)
and
public static func unsubscribe()
public static func isSubscribed() -> Bool
Subscribe method:
InPlayer.Notification.subscribe(onStatusChanged: { (status) in
// Notification status changed
}, onMessageReceived: { (message) in
// Because message has type which is enum containing associated value, this is one of the ways to use it.
if case let NotificationType.accessGranted(resource) = message.type {
// Access was granted, you can use resource
}
}, failure: { (error) in
// InPlayerError containing info about what happened
})
We are thankful for any contributions made by the community. By contributing you agree to abide by the Code of Conduct in the Contributing Guidelines.
Licensed under the MIT License, Copyright © 2018-present InPlayer.
See LICENSE for more information.