澳门新葡京平台游戏iOS开屏广告解决方案XHLaunc

作者:澳门新葡京平台游戏

澳门新葡京平台游戏 1澳门新葡京平台游戏,header.png

iOS启动页广告XHLaunchAd

澳门新葡京平台游戏 2header.png

一.前言:

1.现在越来越多的App在启动时插入广告,因平时项目中常用到,所以特意写了一个库,他叫XHLaunchAd.2.Github地址: 300 多个 star ,目前已经更新到V2.1.3版本,现分享给大家.

-> XHLaunchAd  几行代码接入启动页广告,自带图片下载、缓存相关功能,无任何第三方依赖,支持静态/动态、全屏/半屏广告, 支持LaunchImage或者LaunchScreen. pod 'XHLaunchAd', '~> 2.1.3' - Homepage: https://github.com/CoderZhuXH/XHLaunchAd - Source: https://github.com/CoderZhuXH/XHLaunchAd.git - Versions: 2.1.3, 2.1.2, 2.1.1, 2.1.0, 2.0.1, 2.0, 1.2, 1.1.4, 1.1.3, 1.1.2, 1.1, 1.0 [master repo]

一.前言:

1.现在越来越多的App在启动时插入广告,因平时项目中常用到,所以特意写了一个库,他叫XHLaunchAd.
2.demo地址:网页链接
3.导入该库仅用几行简单的代码就能实现启动页静态/动态广告功能.
4.该项目发布2个月以来,已经收到 400 多个 star ,目前已经更新到V2.1.4版本,现分享给大家.

-> XHLaunchAd (2.1.3)

   几行代码接入启动页广告,自带图片下载、缓存相关功能,无任何第三方依赖,支持静态/动态、全屏/半屏广告,

   支持LaunchImage或者LaunchScreen.

   pod 'XHLaunchAd', '~> 2.1.4'

   - Homepage: https://github.com/CoderZhuXH/XHLaunchAd

   - Source:   https://github.com/CoderZhuXH/XHLaunchAd.git

   - Versions:2.1.4,2.1.3, 2.1.2, 2.1.1, 2.1.0, 2.0.1, 2.0, 1.2, 1.1.4, 1.1.3, 1.1.2,

   1.1, 1.0 [master repo]

一.前言:

1.之前由于项目需要,写了一个开屏广告组件XHLaunchAd,主要自用,后来发现越来越多的开发者,有这个需求.2.随着使用人数的增加,部分开发者使用者提出了一些需求和问题,XHLaunchAd并不能很好的解决.3.于是决定最近抽时间,把这个组件优化重构一下,解决网友之前提出一些问题和需求,并增加一些新功能,发布v3.0.0版本.4.该项目目前已经收到 700 多个 star ,目前已经更新到v3.0.1版本5.代码地址:

-> XHLaunchAd  开屏广告解决方案,支持图片/视频、静态/动态、全屏/半屏广告,支持iPhone/iPad,自带图片下载、缓存功能,无其他三方依赖 pod 'XHLaunchAd', '~> 3.0.1' - Homepage: https://github.com/CoderZhuXH/XHLaunchAd - Source: https://github.com/CoderZhuXH/XHLaunchAd.git - Versions: 3.0.1, 3.0.0, 2.2.2, 2.2.1, 2.2.0, 2.1.9, 2.1.8, 2.1.7, 2.1.6, 2.1.5, 2.1.4, 2.1.3, 2.1.2, 2.1.1, 2.1.0, 2.0.1, 2.0, 1.2, 1.1.4, 1.1.3, 1.1.2, 1.1, 1.0 [master repo]

二.效果:

澳门新葡京平台游戏 3ScreenShot01.gif澳门新葡京平台游戏 4ScreenShot02.gif

三.XHLalunchAd特性:

  • 1.支持全屏/半屏广告.

  • 2.支持静态/动态广告.

  • 3.支持广告点击事件.

  • 4.自带图片下载,缓存功能.

  • 5.无依赖其他第三方框架.

  • 6.支持未检测到广告数据,设置启动页停留时间.

  • 7.支持启动页为LaunchImage或者LaunchScreen.storyboard.

二.主要更新:

1.增加mp4视频开屏广告2.增加对本地资源支持3.增加预缓存接口4.增加更多属性及接口,具有更强的自定义性5.可设置显示完成动画类型6.可自定义跳过按钮7.拥有更优雅的接入接口8.优化缓存机制,bug fix等等

三.XHLalunchAd特性:

  • 1.支持全屏/半屏广告.
  • 2.支持静态/动态广告.
  • 3.支持广告点击事件.
  • 4.自带图片下载,缓存功能.
  • 5.无依赖其他第三方框架.
  • 6.支持未检测到广告数据,设置启动页停留时间.
  • 7.支持启动页为LaunchImage或者LaunchScreen.storyboard.

四.API:

  • 主要提供两个API,调用非常简单

  • 1.初始化方法

/**

 *  显示启动广告

 *

 *  @param frame      广告frame

 *  @param setAdImage 设置AdImage回调

 *  @param showFinish 广告显示完成回调

 */

 (void)showWithAdFrame : (CGRect)frame setAdImage :  (setAdImageBlock)setAdImage showFinish : (showFinishBlock)showFinish;
  • 2.数据源方法
/**

 *  设置广告数据

 *

 *  @param imageUrl       图片url

 *  @param duration       广告停留时间

 *  @param skipType       跳过按钮类型

 *  @param options        图片缓存机制

 *  @param completedBlock 异步加载完图片回调

 *  @param click          广告点击事件回调

 */

-(void)setImageUrl: (NSString*)imageUrl duration:  (NSInteger)duration skipType: (SkipType)skipType options: (XHWebImageOptions)options completed: (XHWebImageCompletionBlock)completedBlock click: (clickBlock)click;

三.接入后效果:

澳门新葡京平台游戏 5ScreenShot00.gif澳门新葡京平台游戏 6ScreenShot06.gif澳门新葡京平台游戏 7ScreenShot05.gif澳门新葡京平台游戏 8ScreenShot02.gif澳门新葡京平台游戏 9ScreenShot01.gif

四.API:

  • 主要提供两个API,调用非常简单
  • 1.初始化方法
/** * 显示启动广告 * * @param frame 广告frame * @param setAdImage 设置AdImage回调 * @param showFinish 广告显示完成回调 */ showWithAdFrame:frame setAdImage:(setAdImageBlock)setAdImage showFinish:(showFinishBlock)showFinish;
  • 2.数据源方法
/** * 设置广告数据 * * @param imageUrl 图片url * @param duration 广告停留时间 * @param skipType 跳过按钮类型 * @param options 图片缓存机制 * @param completedBlock 异步加载完图片回调 * @param click 广告点击事件回调 */-setImageUrl:(NSString*)imageUrl duration:(NSInteger)duration skipType:skipType options:(XHWebImageOptions)options completed:(XHWebImageCompletionBlock)completedBlock click:(clickBlock)click;

五.调用:

  • 在AppDelegate中导入XHLaunchAd.h 头文件,在didFinishLaunchingWithOptions:中调用初始化方法和数据源方法即可,如下:
   //1.->显示启动广告(初始化方法)

 [XHLaunchAd showWithAdFrame:广告frame大小 setAdImage: ^(XHLaunchAd *launchAd) {



         //未检测到广告数据,启动页停留时间,默认3,(设置4即表示:启动页显示了4s,还未检测到广告数据,就自动进入window根控制器)

         //launchAd.noDataDuration = 4;



         //2.->设置广告数据(数据源方法)

         [launchAd setImageUrl:广告图片URL链接 duration:停留时间 skipType:跳过按钮类型 options:缓存机制 completed:^(UIImage *image, NSURL *url) {



             //异步加载图片完成回调,若需根据图片尺寸,刷新广告frame,可在这里操作

             //launchAd.adFrame = ...;



         } click:^{



             //广告点击事件

             [[UIApplication sharedApplication] openURL:[NSURL URLWithString:广告点击跳转链接]];



         }];



 } showFinish:^{



     //广告展示完成回调,设置window根控制器

     self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:[[UIViewController alloc] init]];



 }];

四.使用方法:

在AppDelegate didFinishLaunchingWithOptions方法中添加下面代码(提前设置App启动页为LaunchImage)

五.调用:

  • 在AppDelegate中导入XHLaunchAd.h 头文件,在didFinishLaunchingWithOptions:中调用初始化方法和数据源方法即可,如下:
 //1.->显示启动广告 [XHLaunchAd showWithAdFrame:广告frame大小 setAdImage:^(XHLaunchAd *launchAd) { //未检测到广告数据,启动页停留时间,默认3,(设置4即表示:启动页显示了4s,还未检测到广告数据,就自动进入window根控制器) //launchAd.noDataDuration = 4; //2.->设置广告数据 [launchAd setImageUrl:广告图片URL链接 duration:停留时间 skipType:跳过按钮类型 options:缓存机制 completed:^(UIImage *image, NSURL *url) { //异步加载图片完成回调,若需根据图片尺寸,刷新广告frame,可在这里操作 //launchAd.adFrame = ...; } click:^{ //广告点击事件 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:广告点击跳转链接]]; }]; } showFinish:^{ //广告展示完成回调,设置window根控制器 self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:[[UIViewController alloc] init]]; }];
--1.1使用默认配置快速初始化
//1.使用默认配置初始化 XHLaunchImageAdConfiguration *imageAdconfiguration = [XHLaunchImageAdConfiguration defaultConfiguration]; //广告图片URLString/或本地图片名(.jpg/.gif请带上后缀) imageAdconfiguratuin.imageNameOrURLString = @"image0.jpg"; //广告点击打开链接 imageAdconfiguration.openURLString = @"http://www.returnoc.com"; //显示图片开屏广告 [XHLaunchAd imageAdWithImageAdConfiguration:imageAdconfiguration delegate:self];

六小结:

  • XHLaunchAd经过多个版本的迭代,现在已经很稳定,后期将会继续维护更新它.
  • 现已推出iOS开屏广告解决方案XHLaunchAd3.0 >>>点击前往>>>
--1.2自定义配置初始化
//2.自定义配置初始化 XHLaunchImageAdConfiguration *imageAdconfiguration = [XHLaunchImageAdConfiguration new]; //广告停留时间 imageAdconfiguration.duration = 5; //广告frame imageAdconfiguration.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height-150); //广告图片URLString/或本地图片名(.jpg/.gif请带上后缀) imageAdconfiguration.imageNameOrURLString = @"image0.jpg"; //网络图片缓存机制 imageAdconfiguration.imageOption = XHLaunchAdImageRefreshCached; //图片填充模式 imageAdconfiguration.contentMode = UIViewContentModeScaleToFill; //广告点击打开链接 imageAdconfiguration.openURLString = @"http://www.returnoc.com"; //广告显示完成动画 imageAdconfiguration.showFinishAnimate =ShowFinishAnimateFadein; //跳过按钮类型 imageAdconfiguration.skipButtonType = SkipTypeTimeText; //后台返回时,是否显示广告 imageAdconfiguration.showEnterForeground = NO; //显示图片开屏广告 [XHLaunchAd imageAdWithImageAdConfiguration:imageAdconfiguration delegate:self]; 
--2.1 使用默认配置快速初始化
//1.使用默认配置初始化 XHLaunchVideoAdConfiguration *videoAdconfiguration = [XHLaunchVideoAdConfiguration defaultConfiguration]; //广告视频URLString/或本地视频名 videoAdconfiguration.videoNameOrURLString = @"video0.mp4"; //广告点击打开链接 videoAdconfiguration.openURLString = @"http://www.returnoc.com"; //显示视频开屏广告 [XHLaunchAd videoAdWithVideoAdConfiguration:videoAdconfiguration delegate:self];
--2.2 自定义配置初始化
//2.自定义配置 XHLaunchVideoAdConfiguration *videoAdconfiguration = [XHLaunchVideoAdConfiguration new]; //广告停留时间 videoAdconfiguration.duration = 5; //广告frame videoAdconfiguration.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height); //广告视频URLString/或本地视频名 videoAdconfiguration.videoNameOrURLString = @"video1.mp4"; //视频填充模式 videoAdconfiguration.scalingMode = MPMovieScalingModeAspectFill; //广告点击打开链接 videoAdconfiguration.openURLString = @"http://www.returnoc.com"; //广告显示完成动画 videoAdconfiguration.showFinishAnimate =ShowFinishAnimateFadein; //跳过按钮类型 videoAdconfiguration.skipButtonType = SkipTypeTimeText; //后台返回时,是否显示广告 videoAdconfiguration.showEnterForeground = NO; //显示视频开屏广告 [XHLaunchAd videoAdWithVideoAdConfiguration:videoAdconfiguration delegate:self];

注意:

若你的广告图片/视频URL来源于数据请求,请在请求数据前设置等待时间,在数据请求成功回调里,配置广告,如下:
//1.因为数据请求是异步的,请在数据请求前,调用下面方法配置数据等待时间.//2.设为3即表示,启动页将停留3s等待服务器返回广告数据,3s内等到广告数据,将正常显示广告,否则将自动进入window的RootVC //设置数据等待时间 [XHLaunchAd setWaitDataDuration:3]; //广告数据请求 [Network getLaunchAdImageDataSuccess:^(NSDictionary * response) { //在此处利用服务器返回的广告数据,按上面示例添加开屏广告代码 XHLaunchImageAdConfiguration *imageAdconfiguration = [XHLaunchImageAdConfiguration ... //配置相关参数.... //显示开屏广告 [XHLaunchAd imageAdWithImageAdConfiguration:imageAdconfiguration delegate:self]; } failure:^(NSError *error) { }]; 

/** * 广告点击事件 回调 */- xhLaunchAd:(XHLaunchAd *)launchAd clickAndOpenURLString:(NSString *)openURLString;{ if(openURLString) { //跳转到广告详情页面 WebViewController *VC = [[WebViewController alloc] init]; VC.URLString = openURLString; [self.window.rootViewController presentViewController:VC animated:YES completion:nil]; }}

//1.XHLaunchImageAdConfiguration 和XHLaunchVideoAdConfiguration 均有一个configuration.customSkipView 属性//2.自定义一个skipView 赋值给configuration.customSkipView属性 便可替换默认跳过按钮 如下:configuration.customSkipView = [self customSkipView];-customSkipView{ UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; button.backgroundColor =[ UIColor clearColor]; button.layer.cornerRadius = 3.0; button.layer.borderWidth = 1.0; button.layer.borderColor = [UIColor whiteColor].CGColor; [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; button.titleLabel.font = [UIFont systemFontOfSize:13]; button.frame = CGRectMake(15,[UIScreen mainScreen].bounds.size.height-55, 85, 40); [button addTarget:self action:@selector(skipAction) forControlEvents:UIControlEventTouchUpInside]; return button;}-skipAction{ [XHLaunchAd skipAction];}/** * 代理方法-倒计时回调 * * @param launchAd XHLaunchAd * @param duration 倒计时时间 */-xhLaunchAd:(XHLaunchAd *)launchAd customSkipView:customSkipView duration:(NSInteger)duration{ UIButton *button = (UIButton *)customSkipView;//此处转换为你之前的类型 //设置自定义跳过按钮倒计时 [button setTitle:[NSString stringWithFormat:@"自定义%lds",duration] forState:UIControlStateNormal];}

/** * 批量下载并缓存image * * @param urlArray image URL Array */ downLoadImageAndCacheWithURLArray:(NSArray <NSURL *> * )urlArray;/** * 批量下载并缓存视频 * * @param urlArray 视频URL Array */ downLoadVideoAndCacheWithURLArray:(NSArray <NSURL *> * )urlArray;

/** * 图片下载完成/或本地图片读取完成 回调 * * @param launchAd XHLaunchAd * @param image image */-xhLaunchAd:(XHLaunchAd *)launchAd imageDownLoadFinish:(UIImage *)image{ NSLog(@"图片下载完成/或本地图片读取完成回调");}/** * 视频下载完成回调 * * @param launchAd XHLaunchAd * @param pathURL 视频保存在本地的path */-xhLaunchAd:(XHLaunchAd *)launchAd videoDownLoadFinish:pathURL{ NSLog(@"video下载/加载完成/保存path = %@",pathURL.absoluteString);}/** * 视频下载进度回调 */-xhLaunchAd:(XHLaunchAd *)launchAd videoDownLoadProgress:progress total:(unsigned long long)total current:(unsigned long long)current{ NSLog(@"总大小=%lld,已下载大小=%lld,下载进度=%f",total,current,progress); }/** * 广告显示完成 */-xhLaunchShowFinish:(XHLaunchAd *)launchAd{ NSLog(@"广告显示完成");}/** 如果你想用SDWebImage等框架加载网络广告图片,请实现此代理 @param launchAd XHLaunchAd @param launchAdImageView launchAdImageView @param url 图片url */-xhLaunchAd:(XHLaunchAd *)launchAd launchAdImageView:(UIImageView *)launchAdImageView URL:url{ [launchAdImageView sd_setImageWithURL:url];}

/** * 清除XHLaunch本地缓存 */ clearDiskCache;/** * 获取XHLaunch本地缓存大小 */ diskCacheSize;/** * 缓存路径 */ (NSString *)xhLaunchAdCachePath;

五.小结:

XHLaunchAd 3.0 拥有更灵活的调用方式和更优雅的接口,后期我还会持续维护并更新他,希望能给更多开发者带来便利!

本文由新葡京8455发布,转载请注明来源

关键词: