iOS啟動頁廣告XHLaunchAd
一.前言:
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]
三.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]];
}];