0

问题是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()
4

3 回答 3

1

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

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

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

于 2017-02-15T14:26:16.597 回答
1

RevMob 的横幅文档中,有一个名为hideAd. 在 IAP 回调上调用该方法可以解决您的问题,对吗?

要隐藏横幅: banner!.hideAd()

于 2017-02-13T12:56:47.310 回答
0

我修好了它!谢谢你的帮助。我必须将代码从 GameViewController 移动到横幅广告的 GameScene 中,以便在购买后立即将其删除。完美运行。

于 2017-02-17T15:47:35.050 回答