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

问题描述 投票:0回答:3

问题是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()
ios swift ads revmob revmobads
3个回答
1
投票

RevMob's banner documentation,有一种叫做hideAd的方法。在IAP回调上调用该方法可以解决您的问题吗?

隐藏横幅:banner!.hideAd()


1
投票

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

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

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.