Add support for iOS 10.3 review prompt

Added an option to use SKStoreReviewController review prompt instead of the default prompt. If it’s not available (below iOS 10.3), just use the default prompt.
This commit is contained in:
Ariel
2017-05-05 15:38:20 -04:00
parent f9736d6273
commit 7299a7067a

View File

@@ -69,6 +69,18 @@ public func reviewTitle(_ reviewTitle: String) {
Manager.defaultManager.reviewTitle = reviewTitle
}
/*
* If set to true, use SKStoreReviewController's requestReview() prompt instead of the default prompt.
* If not on iOS 10.3+, reort to the default prompt.
* Default => false.
*/
public func useStoreKitReviewPrompt() -> Bool {
return Manager.defaultManager.useStoreKitReviewPrompt
}
public func useStoreKitReviewPrompt(_ useStoreKitReviewPrompt: Bool) {
Manager.defaultManager.useStoreKitReviewPrompt = useStoreKitReviewPrompt
}
/*
* Get/Set the message to use on the review prompt.
* Default value is a localized
@@ -870,6 +882,7 @@ open class Manager : ArmchairManager {
fileprivate var tintColor: UIColor? = nil
fileprivate lazy var usesAlertController: Bool = self.defaultUsesAlertController()
fileprivate lazy var opensInStoreKit: Bool = self.defaultOpensInStoreKit()
fileprivate var useStoreKitReviewPrompt: Bool = false
fileprivate func defaultOpensInStoreKit() -> Bool {
return operatingSystemVersion >= 8
@@ -1199,6 +1212,10 @@ open class Manager : ArmchairManager {
}
} else {
#if os(iOS)
if #available(iOS 10.3, *), useStoreKitReviewPrompt {
SKStoreReviewController.requestReview()
return
}
if (operatingSystemVersion >= 8 && usesAlertController) || operatingSystemVersion >= 9 {
/* iOS 8 uses new UIAlertController API*/
let alertView : UIAlertController = UIAlertController(title: reviewTitle, message: reviewMessage, preferredStyle: UIAlertControllerStyle.alert)