用户首次启动应用程序时会显示SKStoreReviewController

时间:2018-03-09 17:07:12

标签: ios swift skstorereviewcontroller

在我的iOS应用中,我正在使用SKStoreReviewController请求用户对应用进行评级。 Apple文档说要在我们想要的任何地方放置请求“Rate Us”弹出窗口的代码,它们将在实际显示时进行管理。 我在应用程序的第一个视图中编写了以下代码:

func requestReview() {
    SKStoreReviewController.requestReview()
}

问题是弹出窗口会在他们第一次启动应用时立即显示给我的应用用户,这没有任何意义。有没有办法控制弹出窗口的外观,并避免在应用程序的一定数量的使用之前显示它?

1 个答案:

答案 0 :(得分:6)

SKStoreReviewController.requestReview() 显示前几次的弹出窗口(to be exact,一年中的前3次)。

创建一个变量,每次在应用程序委托的didFinishLaunchingWithOptions方法中递增,并将其保存到UserDefaults。之后,您可以检查用户是否打开了足够多次的应用程序。

<强>的AppDelegate

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    var appLaunches = UserDefaults.standard.integer(forKey: "appLaunches")
    appLaunches += 1
    UserDefaults.standard.set(appLaunches, forKey: "appLaunches")

    return true
}

要显示商店评论控制器的视图控制器

let appLaunches = UserDefaults.standard.integer(forKey: "appLaunches")

if appLaunches >= [enough number of app launches] {
    SKStoreReviewController.requestReview()
}