为什么我的广告不显示?
why my admob doesn't show?
控制台中没有错误,似乎一切正常。但bannerView_就是没有显示。
这是我的AdMobObject.h
#import "AdMobObject.h"
#import "RootViewController.h"
#import "GADBannerView.h"
@class RootViewController;
@class GADBannerView;
@interface AdMobObject : UIViewController{
RootViewController * viewController;
GADBannerView * bannerView_;
}
+ (AdMobObject *) shared;
- (void) addAdMob;
- ( void) hideAdMob;
@end
这是我的 AdMobObject.mm
#import "AdMobObject.h"
#import "AppController.h"
#import "RootViewController.h"
#import "EAGLView.h"
#import "cocos2d.h"
@implementation AdMobObject
static AdMobObject* instance;
+(AdMobObject *) shared{
@synchronized(self){
if( instance == nil ){
instance = [[self alloc] init];
}
}
return instance;
}
- (void) addAdMob{
NSLog(@"----------addAdMob");
bannerView_ = [[GADBannerView alloc] initWithAdSize:kGADAdSizeSmartBannerPortrait];
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenHeight = screenRect.size.height;
CGFloat screenWidth = screenRect.size.width;
viewController.view.frame = CGRectMake(0,0,screenWidth,screenHeight);
[bannerView_ setFrame:CGRectMake(0,
screenHeight-bannerView_.bounds.size.height,
//0,
bannerView_.bounds.size.width,
bannerView_.bounds.size.height)];
bannerView_.adUnitID = @"myadmobid";
bannerView_.rootViewController = viewController;
[viewController.view addSubview:bannerView_];
GADRequest *request = [GADRequest request];
// For testing
request.testDevices = [NSArray arrayWithObjects:@"mydeviceid", nil];
[bannerView_ loadRequest:request];
[viewController.view addSubview:bannerView_];
}
- (void) showAdMob{
}
- (void) hideAdMob{
[bannerView_ setHidden:YES];
}
@end
然后我有一个类来管理它:
@interface MyGameCenterManager : NSObject
{
}
+(MyGameCenterManager *) shared;
+(void) addAdMob;
+(void) hideAdMob;
@end
下面是类实现:
@implementation MyGameCenterManager
static MyGameCenterManager *instance;
+(MyGameCenterManager*)shared{
@synchronized(self){
if(instance == nil){
instance = [[self alloc] init];
}
}
return instance;
}
+ (void) addAdMob
{
[[AdMobObject shared] addAdMob];
}
+ (void) hideAdMob{
[[AdMobObject shared] hideAdMob];
}
最后,我有cpp类:
包括"cocos2d.h"
#include "ScriptingCore.h"
namespace ls{
class GameCenterBridge: public cocos2d::CCObject{
public:
static cocos2d::CCScene* scene();
virtual bool init();
CREATE_FUNC(GameCenterBridge);
void addAdMob();
void hideAdMob();
};
}
我打电话给我的班级:
ls::GameCenterBridge* class = new ls::GameCenterBridge();class->addAdMob();
我可以看到控制台日志:
----------添加广告Mob
这意味着它进入addAdMob函数。并且没有其他错误。
但是横幅视图就是没有显示。
我让它显示的唯一方法是将代码添加到 didFinishLaunchingWithOptions 中的 AppController.mm 中。但我只是想知道为什么它不适用于我自己创建的类。
当我实施 AdMob 时,我仅在广告从服务器加载时才显示广告。您可以通过实现GADBannerViewDelegate
来实现这一点,特别有趣的方法是
-
- (void)adViewDidReceiveAd:(GADBannerView *)bannerView;
-
- (void)adView:(GADBannerView *)bannerView didFailToReceiveAdWithError:(GADRequestError *)error
这样,您就可以确定您收到了广告。
相关文章:
- 为什么我的程序不能显示斐波那契级数?
- 为什么我的 cout 在输出中没有显示字符串?
- 为什么在为其分配编号后无法显示我的字符串值?
- 你能帮我解决显示矩阵的问题吗?
- 我的期末考试遇到了麻烦.代码不断循环回到我的订购菜单,不会显示我的总价
- 如何重载运算符<<显示我的列表
- 为什么我无法显示我的链表?
- 为什么我的代码不显示我的 TButton 数组?
- 我如何显示我的字符串
- 如何在printf中显示我的源代码的行号
- 如何在Qt客户端应用程序中显示我的OSM磁贴
- 类,显示我的最终结果C++时出现问题
- 需要有关使用 for 循环显示我的数组的帮助
- 有没有一种方法可以在两列中显示我的素数列表输出
- 如何显示我的 Queue & Stack?
- 如何使用 OPENCV 显示我的代码中的图像
- 无法显示我的每个函数的结果
- 我如何让Anjuta突出显示我的构建系统(waf)产生的错误/行
- 如何在 GUI 输出窗口而不是 Visual Studio 2015 中的 cmd 控制台上显示我的C++程序输出
- 为什么 OpenGL 不显示我的火粒子