Abh*_*tra 36 iphone objective-c ios skstorereviewcontroller ios10.3
我已经看到一些答案,但不满意他们并得到一些想法,但不知道如何正确使用它,以便它将以适当的方式执行,虽然我认为它应该在App代表中使用didFinishLaunching,但我想确保在Live应用程序中实现它之前没有任何喧嚣.
SKStore?Review?Controller我只阅读ios 10.3的内容,任何人都可以用迅速和客观的c代码解释一下.
更新:
实际上我对调用方法很困惑request?Review(),我需要在哪里调用这个方法?在rootViewController's viewDidLoad或appDelegate's didFinishlaunching?
谢谢.
kor*_*ant 70
SKStoreReviewController 适用于iOS 10.3及更高版本.
根据APPLE的文件:
您可以要求用户在使用应用程序时对其进行评级或评估,而无需将其发送到App Store.您可以确定用户体验中有必要调用API并且系统负责其余部分的点数. .
为了在应用程序内显示Rate/Review,您必须添加StoreKit框架.
请找到这两种语言的示例代码:
目标C:
#import <StoreKit/StoreKit.h>
- (void)DisplayReviewController {
if([SKStoreReviewController class]){
[SKStoreReviewController requestReview] ;
}
}
Run Code Online (Sandbox Code Playgroud)
从xCode 9开始你可以:
#import <StoreKit/StoreKit.h>
- (void)DisplayReviewController {
if (@available(iOS 10.3, *)) {
[SKStoreReviewController requestReview];
}
}
Run Code Online (Sandbox Code Playgroud)
迅速:
import StoreKit
func DisplayReviewController {
if #available( iOS 10.3,*){
SKStoreReviewController.requestReview()
}
}
Run Code Online (Sandbox Code Playgroud)
对于Objective C,
1-)从Link Binary With Library添加了StoreKit框架

2-)添加框架
#import <StoreKit/StoreKit.h>
Run Code Online (Sandbox Code Playgroud)
3-)在下面的代码中添加了要调用App-Review弹出窗口的代码.在这种情况下,我添加了viewDidLoad.
- (void)viewDidLoad {
[super viewDidLoad];
[SKStoreReviewController requestReview];
}
Run Code Online (Sandbox Code Playgroud)
4-)当您在调试模式下进行测试时,您应该了解Apple的以下解释
当您的应用仍处于开发模式时调用此方法时,将始终显示评级/评论请求视图,以便您可以测试用户界面和体验.但是,当您在使用TestFlight分发的应用程序中调用此方法时,此方法无效.
我认为直接致电以下内容不是一个好主意
SKStoreReviewController.requestReview()
就像用户每次打开您应用的10(10,20,30,... 100)的倍数一样,您可以显示以进行审核
因此,首先您需要创建一个文件,该文件将负责所有工作,例如将应用程序打开计数保存在userdefaults中,检索应用程序打开计数并显示requestReview(),请查看以下代码段
import Foundation
import StoreKit
class SpsRateManager {
private static let instance = SpsRateManager()
var shareinstance: SpsRateManager{
return .instance
}
static func incrementAppOpenedCount() { // called from appdelegate didfinishLaunchingWithOptions:
let userdefault = UserDefaults.standard
let savedvalue = userdefault.integer(forKey: Configuration.APPLICATIONOPENCOUNTSTATUS)
if savedvalue == 0 {
print("Not saved ")
userdefault.set(1, forKey: Configuration.APPLICATIONOPENCOUNTSTATUS)
}
else{
userdefault.set(savedvalue+1, forKey: Configuration.APPLICATIONOPENCOUNTSTATUS)
}
}
static func checkAppopencountandProvideReview(){
let userdefault = UserDefaults.standard
let appopencountvalue = userdefault.integer(forKey: Configuration.APPLICATIONOPENCOUNTSTATUS)
if appopencountvalue % 10 == 0 {
print("its been 10 times so ask for review ")
SpsRateManager().requestReview()
}
else{
print("not enough open count dont show ")
}
}
fileprivate func requestReview() {
if #available(iOS 10.3, *) {
SKStoreReviewController.requestReview()
} else {
// Fallback on earlier versions
// Try any other 3rd party or manual method here.
}
}
Run Code Online (Sandbox Code Playgroud)
}
| 归档时间: |
|
| 查看次数: |
22475 次 |
| 最近记录: |