iOS 中的 AdMob 与 UIWebView

Posted

技术标签:

【中文标题】iOS 中的 AdMob 与 UIWebView【英文标题】:AdMob in iOS with UIWebView 【发布时间】:2012-08-11 20:45:02 【问题描述】:

我正在使用最新的 Xcode (4.4.1) 并为 ios 5.1 进行开发。我正在使用 Apple 提供的底部标签栏界面。其中一个选项卡使用了一个 UIWebView,它利用了全屏空间。当我尝试添加 AdMob 提供的标准横幅时,它根本不添加横幅。我跟着:https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals。下面附上代码

关于.h

#import <UIKit/UIKit.h>
#import "GADBannerView.h"

@interface About : UIViewController <UIWebViewDelegate> 
    IBOutlet UIWebView *webView;

    // Declare one as an instance variable
    GADBannerView *bannerView_;


@property (nonatomic, retain) UIWebView *webView;

@end

关于.m

#import "About.h"
#import "GADBannerView.h"
#import "GADRequest.h"
#import "constants.h"

@implementation About

@synthesize webView;
//@synthesize bannerView = bannerView_;

+ (void)initialize 
    // Set user agent (the only problem is that we can't modify the User-Agent later in the program)
    NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:UserAgent, @"UserAgent", nil];
    [[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];


- (void)viewDidLoad 
    [super viewDidLoad];
    NSString *fullURL = ([IsBeta isEqualToString: @"true"]) ? @"http://beta.wouldyouratherapp.com/questions/index/0/1" : @"http://wouldyouratherapp.com/questions/index/0/1";
    NSURL *url = [NSURL URLWithString:fullURL]; NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; [webView loadRequest:requestObj];

    // Create a view of the standard size at the bottom of the screen.
    // Available AdSize constants are explained in GADAdSize.h.
    bannerView_ = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner];

    // Specify the ad's "unit identifier." This is your AdMob Publisher ID.
    bannerView_.adUnitID = MyAdUnitID;

    // Let the runtime know which UIViewController to restore after taking
    // the user wherever the ad goes and add it to the view hierarchy.
    bannerView_.rootViewController = self;
    [self.view addSubview:bannerView_];

    // Initiate a generic request to load it with an ad.
    [bannerView_ loadRequest:[GADRequest request]];



- (void)viewDidUnload

    [super viewDidUnload];
    // Release any retained subviews of the main view.


@end

是的,我已经添加了所有框架,并且 MyAdUnitID 已经在常量文件中定义,所以一切都应该正常工作,但我想我错过了一些东西。有什么帮助吗?

【问题讨论】:

【参考方案1】:

如果您要添加bannerView_,则必须相应降低webView 的高度,以便为bannerView_ 腾出空间。由于广告的来源看起来像是在 (0,0),您可能希望在您的 adView:DidReceiveAd 中使用类似的内容:回调:

webView.frame = CGRectMake (0, bannerView_.frame.size.height, webView.frame.size.width, webView.frame.size.height - bannerView_.frame.size.height);

【讨论】:

感谢您的帮助,但是,我发现它没有加载,因为我设置了自己的自定义 UserAgent。我现在需要调查这个问题...

以上是关于iOS 中的 AdMob 与 UIWebView的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发在 App 中加入 AdMob 广告 - 入门介绍与编程技巧

iOS Admob 广告开始播放锁屏按钮 - BUG?

为 Phonegap 构建创建自定义 AdMob 插件(适用于 iOS 和 Android)

如何在 iOS 的 TableView 中使用 AdMob 横幅广告?

尝试放置 AdMob 后未找到 Xamarin.iOS Runtime.cs

Google Admob 插页式添加崩溃 IOS Swift