#ios #swift #in-app-purchase #ads #flags
#iOS #swift #покупка в приложении #реклама #флаги
Вопрос:
Возможно ли в Swift определить, что пользователь что-то покупает? Процесс обычно занимает около 15-20 секунд и показывает 3-4 разных предупреждения (предупреждение о вводе пароля для Apple ID, для подтверждения покупки, для получения информации об успешной покупке или нет и т. Д.).
Моя проблема заключается в показе рекламы (OpenAd) всякий раз, когда приложение собирается стать активным, так что это действительно плохой пользовательопыт просмотра рекламы при попытке купить премиум-аккаунт для удаления рекламы…
Это часть кода, в которой я их представляю (AppDelegate):
func applicationDidBecomeActive(_ application: UIApplication) {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
tryToPresentAd()
}
И вот методы, которые выполняют представление (также написанные в AppDelegate):
func tryToPresentAd() {
let ad: GADAppOpenAd? = self.appOpenAd
self.appOpenAd = nil
if ad != nil {
guard let rootController = self.window?.rootViewController else { return }
ad?.present(fromRootViewController: rootController)
} else {
requestAppOpenAd()
}
}
func requestAppOpenAd() {
self.appOpenAd = nil
GADAppOpenAd.load(withAdUnitID: Bundle.getValue(forKey: "xyzID"), request: GADRequest(), orientation: .portrait) { (ad, error) in
if error != nil {
debugPrint("Failed to load app open ad", error as Any)
} else {
self.appOpenAd = ad
}
}
}
Есть ли какой-либо способ обнаружить это? Может быть, например, установить какие-то флаги или что-то в этом роде, или, может быть, у Apple есть какой-то встроенный способ его обнаружения? Спасибо.
Ответ №1:
Возможно, вы могли бы попытаться создать bool, который будет превращаться в true всякий раз, когда пользователь решает что-то купить, и проверить, является ли этот bool false, чтобы tryToPresentAd() .