问题是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()
从RevMob's banner documentation,有一种叫做hideAd
的方法。在IAP回调上调用该方法可以解决您的问题吗?
隐藏横幅:
banner!.hideAd()
让我看看我是否正确地解决了您的问题,您希望在购买后立即隐藏您的横幅。
首先,您需要将bannerView设置为viewController的属性。
然后,您必须在购买成功的回调中添加此代码:
viewController.bannerView.removeFromSuperview();
我修好了它!谢谢你的帮助。我不得不将代码从GameViewController移动到bannerAdce的GameScene,以便我可以在购买后立即将其删除。完美的工作。