RKOperations
"privacy_alert_title" = "Important notice";
"privacy_alert_message" = "To continue the app, please agree to the updated Terms of Use and Privacy Policy.";
"privacy_alert_terms_of_use_button" = "Terms of Use";
"privacy_alert_privacy_policy_button" = "Privacy Policy";
"privacy_alert_accept_button" = "Accept";
"privacy_alert_title" = "Важная информация";
"privacy_alert_message" = "Для продолжения Вам необходимо согласиться с Условиями использования и Политикой конфиденциальности";
"privacy_alert_terms_of_use_button" = "Условия пользования";
"privacy_alert_privacy_policy_button" = "Политика конфиденциальности";
"privacy_alert_accept_button" = "Принять";
После показа контроллера, желательно все алерты на старте встроить в этот флоу
import RKOperations
import UIKit
final class RequestPermissionsFlow {
private let operationsQueue = RKOperationQueue()
func start(from controller: UIViewController, session: Session) {
var operations: [RKOperation] = []
if !session.serviceSettings.isPrivacyAccepted {
let policyOperation = PrivacyPolicyAlertOperation(
controller: controller,
context: .init(
privacyPolicyURL: session.config.privacyPolicyURL,
termsOfUseURL: session.config.termsOfUseURL),
handler: .init(
onPrivacyAccepted: { session.serviceSettings.isPrivacyAccepted = true },
openURL: { UIApplication.shared.open($0) })
)
operations.append(policyOperation)
}
let appTrackingOperation = AppTrackingTransparencyAlertOperation()
_ = operations.last.flatMap { $0 <- appTrackingOperation }
operations.append(appTrackingOperation)
if session.serviceSettings.isConsentShowed {
let adMobConsentOperation = AdMobConsentPresentOperation(
controller: controller,
adMobConsent: session.adMobConsent,
handler: .init(onAdsIsAllowed: { [weak session] obtain in
guard let session = session else { return }
session.serviceSettings.isConsentShowed = true
})
)
operations.append(adMobConsentOperation)
appTrackingOperation <- adMobConsentOperation
}
operationsQueue.addOperations(operations, waitUntilFinished: false)
}
}