2017-02-13 78 views
0

问题是,苹果拒绝我的应用程序,因为当点击按钮购买“无广告”升级时,它不会使横幅消失,直到您关闭应用程序并重新-打开它。这是因为我初始化了viewController.swift文件中的所有RevMob代码。我有一个布尔值,只要在这个viewController.swift文件内购买升级,就会变成false。因此,下次打开应用程序并加载viewController时,布尔值将设置为false,并且不允许展示广告。在应用程序内购买时删除RevMob广告横幅

有人知道这是否是错误的方式去做这件事?还是有一种简单的方法,让他们在按下无广告按钮后立即消失,而无需关闭应用程序并重新打开它?

//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() 

回答

1

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

要隐藏广告: banner!.hideAd()

+0

我试过,但因为我在我的viewController中定义它,它不起作用。我可能不得不使用变量来使其成为全局变量。我已经尝试过,但它有点东西了。虽然可能是一种解决方法。 –

1

让我看看,如果我得到你的问题正确,要尽快购买,则隐藏自己的旗帜。

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

然后,你必须回调内从购买成功添加以下代码:
viewController.bannerView.removeFromSuperview();

+0

我得到这个错误尝试:实例成员'bannerView'不能用于类型'GameViewController' –

+0

我上面添加到我的问题如何设置我的变量 –

0

我定了!谢谢你的帮助。我必须将代码从GameViewController移动到bannerAd的GameScene,以便在购买后立即将其删除。完美的作品。

相关问题