2

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

func requestReview() {
    SKStoreReviewController.requestReview()
}

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

4

1 回答 1

6

SKStoreReviewController.requestReview() 显示前几次弹出窗口(准确地说,一年中的前 3 次)。

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

应用委托

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()
}
于 2018-03-09T17:14:36.527 回答