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