Удаление рекламного баннера 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, чтобы я мог удалить его, как только была совершена покупка. Работает отлично.