Я сделал приложение со Swift в XCode и внедрил модальное приложение Rate App в своем приложении, но проблема в том, что оно показывается, когда пользователи устанавливают приложение и открывают его в первый раз, но я хочу показать его через 2 или 3 дня, так что пользователи могут просматривать мое приложение, и если ему нравится, он может оценить мое приложение. это мой код
let reviewService = ReviewService.shared
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let deadline = DispatchTime.now() + .seconds(120)
DispatchQueue.main.asyncAfter(deadline: deadline) { [weak self] in
self?.reviewService.requestReview()
}
}
, а это мой файл ReviewService.swift
private init() {}
static let shared = ReviewService()
private let defaults = UserDefaults.standard
private let app = UIApplication.shared
private var lastRequest: Date? {
get {
return defaults.value(forKey: "ReviewService.lastRequest") as? Date
}
set {
defaults.set(newValue, forKey: "ReviewService.lastRequest")
}
}
private var oneWeekAgo: Date {
return Calendar.current.date(byAdding: .day, value: -7, to: Date())!
}
private var shouldRequestReview: Bool {
if lastRequest == nil {
return true
} else if let lastRequest = self.lastRequest, lastRequest < oneWeekAgo {
return true
}
return false
}
func requestReview(isWrittenReview: Bool = false) {
guard shouldRequestReview else { return }
if isWrittenReview {
let appStoreUrl = URL(string: "https://itunes.apple.com/app/idxxxxxxx?action=write-review")!
app.open(appStoreUrl)
} else {
if #available(iOS 10.3, *) {
SKStoreReviewController.requestReview()
} else {
// Fallback on earlier versions
}
}
lastRequest = Date()
}
}