Удаление рекламного баннера RevMob при покупке в приложении

Проблема в том, что Apple отклоняет мое приложение, потому что при нажатии кнопки для покупки обновления "без рекламы" баннер не исчезает, пока вы не закроете приложение и не откроете его снова. Это потому, что я инициализирую весь свой код RevMob в файле viewController.swift. У меня есть логическое значение, которое превращается в ложное, как только обновление покупается в этом файле viewController.swift. Поэтому в следующий раз, когда вы откроете приложение и загрузите viewController, логическое значение будет установлено в false и не позволит показывать рекламу.

Кто-нибудь знает, если это неправильный путь? Или есть простой способ заставить их исчезнуть сразу после нажатия кнопки "Нет рекламы", не закрывая приложение и не открывая его снова?

//BANNER AD =======================================
let bannerBlock: () -> Void = {
    //Custom method defined below
    if UserDefaults.standard.object(forKey: "adsBool") as! Bool == true
    {
        self.showBannerWithCustomFrame()
    }
        else
    {
        //don't show ads because user purchased
    }
}
let bannerFailBlock: ((Error?) -> Void) = {error in
    NSLog("[RevMob Sample App] Session failed to start with error: \(error!.localizedDescription)")
}
RevMobAds.startSession(withAppID: "00000000000000000000",
    withSuccessHandler: bannerBlock,
    andFailHandler: bannerFailBlock)

Так настроен мой bannerView в моем GameViewController

class GameViewController: UIViewController, RevMobAdsDelegate {
    var bannerView:RevMobBannerView?

    override func viewDidLoad() {
    super.viewDidLoad()

3 ответа

Решение

Из баннерной документации RevMob есть метод, который называется hideAd, Вызов этого метода для обратного вызова IAP решит вашу проблему, верно?

Чтобы скрыть баннер: banner!.hideAd()

Дайте мне посмотреть, правильно ли я понял вашу проблему, вы хотите скрыть свой баннер, как только сделаете покупку.

Во-первых, вам нужно установить bannerView как свойство вашего viewController.

Затем вы должны добавить этот код внутри обратного вызова после успешной покупки:
viewController.bannerView.removeFromSuperview();

Я починил это! Спасибо за вашу помощь. Мне пришлось переместить код из GameViewController в GameScene для bannerAd, чтобы я мог удалить его, как только была совершена покупка. Работает отлично.

Другие вопросы по тегам