iOS开屏广告的实现技巧

最后编辑时间: 2018-04-09

一、前言

虽然市场上已经有很多应用都有这个功能了,我只是想分享一下我的实现技巧,100个人有100个想法。

二、实现思路

这两种开屏广告大家都见过吧?一种是半屏一种是全屏广告。

如图:

yidaotianmaokaiping

1、障眼秘籍:

咱们从头开始分析。iOS启动的时候有一个默认开屏页,这个页会一闪而过。我们想在这里加入广告,一定要用到障眼法。所谓障眼法就是我们的广告是压在一个和默认开屏页一抹一样的图片上面。当用户看到了开屏页后,我们用一个和开屏页一样的图压在上面,用户还以为这个就是系统的页面,此时上面广告压上,这样就完美实现了。这里的难点是有的app这个假页面大小和app原来的不一样,这样效果就不好了。这里我写了一个获取系统LaunchImage图片的类,大家可以精确获取系统默认开屏图片,达到天衣无缝的效果。

传送门-> GetLaunchImage

2、缓存秘籍:

以为用户不是用一次app就再也不用了,用户肯定会多次打开app的。虽然已经实现了障眼秘籍,但是如果网速慢图片大,总不能让用户看3秒默认启动图吧?那样体验太不好了,因此还是加入缓存机制比较好。我的实现思路是,第一次不让用户去看这个3秒广告了,直接略过,开一个线程去缓存这张图片。第二次用户再启动app的时候,再显示图片,这里渐隐动画和假启动页配合好,天衣无缝。这里的缓存用到了SDWebImage中的SDWebImageManager。

3、其他秘籍:

此处是执行广告页逻辑之前要实现的一些东西,大家可以自由发挥。我在公司项目中是按照如图所示逻辑。github的demo简单使用userdefault做的演示。

如图:

kaipingyeliucheng

三、主要实现代码

不喜欢贴太多代码,贴一个调用代码,主要是思路,建议直接看demo吧。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {




self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

self.window.backgroundColor = [UIColor whiteColor];

[self.window makeKeyAndVisible];

ViewController *VC = [ViewController new];

UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:VC];

self.window.rootViewController = nav;



NSString *picUrl = @"http://785j3g.com1.z0.glb.clouddn.com/d659db60-f.jpg";

NSString *userDefaultKey = @"download_key";



if ([[[NSUserDefaults standardUserDefaults] stringForKey:userDefaultKey] isEqualToString:@"1"]) {

IanAdsStartView *startView = [IanAdsStartView startAdsViewWithBgImageUrl:picUrl withClickImageAction:^{

IANWebViewController *VC = [IANWebViewController new];

VC.title = @"这可能是一个广告页面";

[(UINavigationController *)self.window.rootViewController pushViewController:VC animated:YES];

}];



[startView startAnimationTime:3 WithCompletionBlock:^(IanAdsStartView *startView){

NSLog(@"广告结束后,执行事件");

}];

} else { // 第一次先下载广告

[IanAdsStartView downloadStartImage:picUrl];



[[NSUserDefaults standardUserDefaults] setValue:@"1" forKey:userDefaultKey];

[[NSUserDefaults standardUserDefaults] synchronize];

}



return YES;


Demo传送门-> https://github.com/ianisme/IanStartAdsView

如图:

IanStartAdsView

四、总结

每个人都有不同的实现方法,你的实现方法是什么呢?

取消回复

请在下方留下您的评论. 加入TG吹水群

深圳SEO优化公司沧州百度爱采购价格安康关键词排名包年推广公司郴州建网站徐州百搜标王价格驻马店网页制作公司普洱网站推广工具哪家好中卫seo公司白银网站seo优化哪家好和县seo网站优化恩施关键词排名包年推广推荐永新网站建设设计报价丽江企业网站设计价格沙井网站设计公司南通网站搭建报价大庆营销网站报价松原网页制作多少钱杭州网站改版多少钱张家口关键词按天计费公司镇江seo网站推广价格随州营销型网站建设报价鸡西企业网站制作公司大运seo优化价格石家庄seo推荐白山网站排名优化佛山关键词排名多少钱六安网络营销甘孜推广网站郴州百度竞价推荐抚州网站开发多少钱昭通网络推广哪家好歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化