立即移除 AdMob 横幅?

Posted

技术标签:

【中文标题】立即移除 AdMob 横幅?【英文标题】:Instantly remove AdMob banner? 【发布时间】:2015-01-26 22:36:36 【问题描述】:

我使用 cocos2d 制作了一个游戏,并在 appdelegate 中集成了一个 admob 横幅,以便它显示在所有视图控制器上。我已经实现了在“游戏结束”屏幕中发生的删除广告功能。这是我的问题。移除广告功能有效,但不会立即生效。我必须终止应用程序并重新启动它才能让横幅消失。有没有办法只重新加载 appdelegate 并立即删除广告而不必重新加载应用程序?请帮忙 这让我发疯了。

已编辑:这是我当前的代码。当应用程序加载时横幅加载我试图让横幅消失当用户购买删除它而无需重新启动应用程序(关闭应用程序重新启动)

AppDelegate.h

    #import "GADBannerViewDelegate.h"


// Added only for ios 6 support
@interface MyNavigationController : UINavigationController <CCDirectorDelegate>
@end
@class RootViewController;
@class GADBannerView, GADRequest;
@interface AppController : NSObject <UIApplicationDelegate,ADBannerViewDelegate,UIActionSheetDelegate, GKLeaderboardViewControllerDelegate, GameCenterManagerDelegate,ChartboostDelegate,GADBannerViewDelegate>

    UIWindow *window_;
    MyNavigationController *navController_;

    CCDirectorIOS   *director_;
    UIViewController    *tempVC;                        // weak ref
    RootViewController *viewController_;

    //Admob
    GADBannerView *bannerView_;
    BOOL isAdPositionAtTop_;

AppDelegate.m 如果 removeads 为“否”,我使用 calladmob 启动广告

-(void)callAdMob
//Admob ads
CGPoint origin = CGPointMake(0.0,self.window.frame.size.height -CGSizeFromGADAdSize(kGADAdSizeSmartBannerPortrait).height);
bannerView_ = [[GADBannerView alloc] initWithAdSize:kGADAdSizeSmartBannerPortrait origin:origin];
bannerView_.adUnitID = @"idhere";
bannerView_.delegate = self;
[bannerView_ setRootViewController:tempVC];
CGRect adBannerViewFrame = [bannerView_ frame];
int lSizeValue=0;
if([[CCDirector sharedDirector] winSize].width==320)
    lSizeValue=50;
else if([[CCDirector sharedDirector] winSize].width==768)
    lSizeValue=66;
adBannerViewFrame.origin.x = 0;
adBannerViewFrame.origin.y = [[CCDirector sharedDirector] winSize].height-lSizeValue;
[bannerView_ setFrame:adBannerViewFrame];
[[self navController].view addSubview:bannerView_];
[bannerView_ loadRequest:[self createRequest]];

【问题讨论】:

【参考方案1】:

为什么不通过“删除广告”功能发送通知?

然后,只要您有 AdMob 横幅,您就可以添加一个观察者来监视该通知,并且被调用的方法会执行以下操作:

[bannerView removeFromSuperview] or bannerView.hidden = YES

前提是您将 AdMob 横幅连接到 IBOutlet

【讨论】:

我的横幅在应用程序加载的那一刻加载并在所有视图控制器中保持不变。我唯一拥有横幅代码的地方是 appdelegate。您推荐的方法不起作用。 您可能需要编辑您的问题以更好地描述您的横幅是如何添加的,并显示是否有任何类型的 IBOutlet 连接到它。

以上是关于立即移除 AdMob 横幅?的主要内容,如果未能解决你的问题,请参考以下文章

应用购买中的“移除广告”应该删除奖励广告以及横幅广告和插页式广告吗?

移除 UIView 后重置其他组件的约束

在屏幕/视图底部设置 admob 横幅?

Admob 横幅已隐藏

我可以在同一活动中显示 admob 原生广告和 admob 横幅广告吗?

如何正确停止展示 AdMob 横幅广告?