SKStoreReviewController 在用户第一次启动应用程序时显示

SKStoreReviewController is being displayed the first time user launches the app

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

func requestReview() {
    SKStoreReviewController.requestReview()
}

问题是,当我的应用程序的用户首次启动应用程序时,弹出窗口就会显示给他们,这是没有意义的。有什么方法可以控制弹出窗口的外观并避免在一定数量的应用程序使用之前显示它?

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()
}