SKStoreReviewController отображается при первом запуске приложения пользователем

В моем приложении для iOS я использую SKStoreReviewController, чтобы запросить пользователей оценить приложение. Документация Apple гласит, что код для запроса всплывающего окна "Оцените нас" можно разместить где угодно, и он будет определять, когда он будет отображаться. Я написал следующий код в первом представлении приложения:

func requestReview() {
    SKStoreReviewController.requestReview()
}

Проблема в том, что всплывающее окно отображается пользователям моего приложения, как только они впервые запускают приложение, что не имеет смысла. Есть ли способ контролировать внешний вид всплывающего окна и не показывать его перед определенным использованием приложения?

1 ответ

Решение

SKStoreReviewController.requestReview() будет отображаться всплывающее окно в течение первых нескольких раз ( а точнее, в течение первых 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()
}
Другие вопросы по тегам