ios开发笔记:如何在iphone/ipad应用程序添加iAd

转自:https://lwxshow.com/post/1472.html

iAd的推出无疑给Iphone/IPad的应用程序开发者打开了另一条创收之门

iPhone/iPad的程序,即使是Free的版本,也可以通过广告给我们带来收入。前提是你的程序足够吸引人,有足够的下载量。

这里,我将介绍一下程序中集成广告的方法。主要有两种广告iAd和AdMob。(还有其他多种可被植入的广告SDK,这里就不都一一介绍了)

这里先介绍iad



从iOS 4开始,Apple增加了叫做 iAd 的架构,通过它我们可以在程序中提供Apple的广告服务。Apple会支付给开发者60%的广告收入。

iAd Framework中有例程,我们可以下载学习。这里,把简单的步骤说明一下 :

1.添加iAD Framework到库

在Xcode的[Frameworks]中添加[iAd.framework]。



2.创建ADBannerView

广告的显示是在一个叫做ADBannerView的窗口中的。通过控制这个窗口可以控制广告的显示/隐藏。ADBannerView和一般的UIView没有什么两样,将其作为某个画面的subView,然后通过「frame」控制其显示的位置,大小。一般情况下,缺省iPhone上的话,竖屏是:横320pt, 竖50pt;横屏是:横480pt, 竖32pt。

下面的程序显示了ADBannerView的初始化过程,以父窗口的viewDidLoad中实现为例。

- (void)viewDidLoad {

……【省略】……

    // 初始化ADBannerView
    ADBannerView *adView = [[[ADBannerView alloc] initWithFrame:CGRectZero] autorelease];
    adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
    // 登陆ADBannerView的delegate,这里我们设定其父窗口自己
    adView.delegate = self;
    // 在父窗口下方表示
    adView.frame = CGRectOffset(adView.frame, 0, self.view.frame.size.height - self.adView.frame.size.height);
    // 添加到父窗口中
    [self.view addSubview:adView];
}
3.接下来,我们来实现ADBannerView的delegate。

这里可以实现在父窗口的UIViewController子类中,也可以单独写一个ViewController。这里面实现了ADBannerView广告的读取,错误处理,全画面表示等delegate的处理设定。

下面实现在父窗口的ViewController中。

#import <UIKit/UIKit.h>
#import <iAd/iAd.h>

@interface XXXViewController : UIViewController<UITextFieldDelegate, ADBannerViewDelegate> {

……【省略】……
}
如上所示,这里增加了「ADBannerViewDelegate」protocol的实现。

4.接下来看看都有哪些delegate接口。

// 广告读取过程中出现错误
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError * )error{
    // 切换ADBannerView表示状态,显示→隐藏
    // adView.frame = CGRectOffset(adView.frame, 0, self.view.frame.size.height);
}

// 成功读取广告
- (void)bannerViewDidLoadAd:(ADBannerView *)banner{
    // 切换ADBannerView表示状态,隐藏→显示
    // adView.frame = CGRectOffset(adView.frame, 0, self.view.frame.size.height - adView.frame.size.height);
}

// 用户点击广告是响应,返回值BOOL指定广告是否打开
// 参数willLeaveApplication是指是否用其他的程序打开该广告
// 一般在该函数内让当前View停止,以及准备全画面表示广告
- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave {
    NSLog(@"bannerViewActionShouldBegin:willLeaveApplication: is called.");
}

// 全画面的广告表示完了后,调用该接口
// 该接口被调用之后,当前程序一般会作为后台程序运行
// 该接口中需要回复之前被中断的处理(如果有的话)
- (void)bannerViewActionDidFinish:(ADBannerView *)banner {
    NSLog(@"bannerViewActionDidFinish: is called.");
}
  查看效果



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值