一.前言:
1.现在越来越多的App在启动时插入广告,因平时项目中常用到,所以特意写了一个库,他叫XHLaunchAd.
2.Github地址:https://github.com/CoderZhuXH/XHLaunchAd
3.导入该库仅用几行简单的代码就能实现启动页静态/动态广告功能.
4.该项目发布2个月以来,已经收到 300 多个 star ,目前已经更新到V2.1.3版本,现分享给大家.
-> XHLaunchAd (2.1.3)
几行代码接入启动页广告,自带图片下载、缓存相关功能,无任何第三方依赖,支持静态/动态、全屏/半屏广告,
支持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]
二.效果:
ScreenShot01.gif ScreenShot02.gif三.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;
五.调用:
- 在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]];
}];
六小结:
- XHLaunchAd经过多个版本的迭代,现在已经很稳定,后期将会继续维护更新它.
- 现已推出iOS开屏广告解决方案XHLaunchAd3.0 >>>点击前往>>>
网友评论
UIWindow *window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
window.rootViewController = [XHLaunchAdController new];
window.rootViewController.view.backgroundColor = [UIColor clearColor];
window.rootViewController.view.userInteractionEnabled = NO;
window.windowLevel = UIWindowLevelStatusBar + 1;
window.hidden = NO;
window.alpha = 1;
_window = window;
但是不明白是如何将他添加到当前window上的, 我看消失的时候, 也只是隐藏掉这个创建的window的
我确定视频名称没错 也拖进工程里面了
imageAdconfiguration.showEnterForeground = YES;//后台返回时,是否显示广告
开屏广告是在程序启动时显示的,启动后才显示其它的!