在应用内购买时删除RevMob广告横幅

时间:2017-02-13 04:51:23

标签: ios swift ads revmob revmobads

问题是Apple拒绝了我的应用,因为当点击按钮购买"没有广告"升级,它不会使横幅消失,直到您关闭应用程序并重新打开它。这是因为我在viewController.swift文件中初始化了所有RevMob代码。我有一个布尔值,一旦在此viewController.swift文件中购买升级,就会变为false。因此,下次打开应用程序并加载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)

这就是我在我的GameViewController中设置bannerView的方式

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

    override func viewDidLoad() {
    super.viewDidLoad()

3 个答案:

答案 0 :(得分:1)

RevMob's banner documentation开始,有一个名为hideAd的方法。在IAP回调上调用该方法可以解决您的问题吗?

  

隐藏横幅:   banner!.hideAd()

答案 1 :(得分:1)

让我看看我是否正确解决了您的问题,您希望在购买后立即隐藏您的横幅。

首先,您需要将bannerView设置为viewController的属性。

然后你必须在购买成功的回调中添加这个代码:
viewController.bannerView.removeFromSuperview();

答案 2 :(得分:0)

我修好了!谢谢你的帮助。我不得不将代码从GameViewController移动到bannerAdce的GameScene,以便我可以在购买后立即将其删除。效果很好。