iOS 只要一行代碼完成APP廣告頁

一弛矛、廣告頁功能思路

  • APP第一次安裝或版本更新時,有引導(dǎo)頁的時候不展示廣告得问,第二次開始展示廣告囤攀。

  • 創(chuàng)建一個展示廣告的Imageview。

  • 添加跳過廣告的倒計時按鈕宫纬。

  • 添加廣告頁面點擊事件抚岗,點擊廣告圖片跳轉(zhuǎn)到相應(yīng)頁面;廣告鏈接地址也需要用NSUserDefaults存儲哪怔。注意:廣告詳情頁面是從首頁push進(jìn)去的宣蔚。

  • 加載:在啟動頁展示的時間里,開始加載廣告认境,先將圖片通過SD異步下載到本地胚委,并保存圖片名,每次打開app時先根據(jù)本地存儲的圖片名查找沙盒中是否存在該圖片叉信,如果存在亩冬,則顯示廣告頁。在啟動頁加載完成之后應(yīng)該去判斷廣告是否有加載出來硼身。

  • 判斷廣告圖片是否更新:無論本地是否存在廣告圖片硅急,每次啟動都需要重新調(diào)用廣告接口,根據(jù)圖片名稱或者圖片id等方法判斷廣告是否更新佳遂,如果獲取的圖片名稱或者圖片id跟本地存儲的不一致营袜,則需要重新下載新圖片,并刪除舊圖片丑罪。

  • 廣告頁面的底部和啟動圖的底部一般都是相同的荚板,給我們的感覺就是啟動圖加載完之后把廣告圖放在了啟動圖上,而且不能有偏差吩屹,比如下圖淘寶啟動畫面跪另,美工在制作廣告圖的時候要注意這點。

  • APP在后臺:如果app在后臺待機(jī)太久煤搜,再次進(jìn)來前臺的時候也應(yīng)該展示廣告免绿,所以在applicationDidEnterBackground的時候應(yīng)該把時間存起來。在applicationWillEnterForeground的時候?qū)Ρ葧r間差擦盾,判斷是否顯示嘲驾。

  • 增加廣告顯示開關(guān):后臺在開發(fā)廣告api的時候可以增加一個字段來判斷是否啟用廣告,如果后臺關(guān)閉了廣告厌衙,將沙盒中的圖片刪除即可距淫。

  • 添加統(tǒng)計:看廣告詳情有多少人觀看,有多少人會跳過等婶希。

二榕暇、步驟

1、首先判斷APP是否是第一次進(jìn)入或者版本更新喻杈,如果是彤枢,啟動引導(dǎo)頁;如果不是筒饰,再判斷是否需要顯示廣告缴啡。
if ([Manager isFirstLaunch]) {
        //一句代碼啟動引導(dǎo)頁
        [GuidePageView sharedWithImages:@[@"1.jpg",@"2.jpg",@"3.jpg",@"4.jpg"] buttonImage:@"post_normal" buttonFrame:CGRectMake(0, -10, SCREEN_WIDTH, SCREEN_HEIGHT)];`
    }else {
        //顯示廣告頁
        //后臺在開發(fā)廣告api的時候增加一個字段來判斷是否啟用廣告
        if (self.isShowAdPage) {}
        //一句代碼調(diào)用廣告頁
        [ADPageView showAdPageView];
   }
2、創(chuàng)建一個展示廣告的Imageview和添加跳過廣告的倒計時按鈕
- (instancetype)initWithFrame:(CGRect)frame {
    if (self = [super initWithFrame:frame]) {
        //廣告頁
        _adView = [[UIImageView alloc] initWithFrame:frame];
        _adView.userInteractionEnabled = YES;
        _adView.contentMode = UIViewContentModeScaleAspectFit;
        _adView.clipsToBounds = YES;
        UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(pushToAd)];
        [_adView addGestureRecognizer:tap];
        
        //跳過按鈕
        _skipBtn = [UIButton buttonWithType:UIButtonTypeCustom];
        _skipBtn.backgroundColor = RGBAColor(38, 38, 38, 0.6);
        _skipBtn.layer.cornerRadius = 4;
        [_skipBtn setTitle:[NSString stringWithFormat:@"跳過%d",showTime] forState:UIControlStateNormal];
        [_skipBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
        _skipBtn.titleLabel.font = [UIFont systemFontOfSize:15.0f];
        [_skipBtn addTarget:self action:@selector(dismissAdView) forControlEvents:UIControlEventTouchUpInside];
        
        [self addSubview:_adView];
        [self addSubview:_skipBtn];
        _skipBtn.sd_layout
        .widthIs(60)
        .heightIs(30)
        .topSpaceToView(self, 20)
        .rightSpaceToView(self, 20);
        
        [self showAdView];
    }
    return self;
}
3瓷们、廣告頁加載业栅,先從沙盒查找秒咐,有,則顯示碘裕,并下載更新携取,刪除舊圖片;沒有帮孔,下載雷滋,保存。
- (void)showAdView {
    //先出沙盒讀取路徑
    NSString *filePath = [self getFilePathWithImageName:UserDefaultObjectForKey(adImageName)];
    BOOL isExist = [[NSFileManager defaultManager] fileExistsAtPath:filePath];
    
    if (isExist) {
        
        [self startTimer];
        UIWindow *window = [UIApplication sharedApplication].keyWindow;
        [window addSubview:self];
        
        [_skipBtn setTitle:[NSString stringWithFormat:@"跳過%d",showTime] forState:UIControlStateNormal];
        _adView.image = [UIImage imageWithContentsOfFile:filePath];
        _adView.contentMode = UIViewContentModeScaleAspectFill;
        _adUrl = UserDefaultObjectForKey(adUrl);
    }
    //無論沙盒中是否存在廣告圖片文兢,都需要重新調(diào)用廣告接口晤斩,判斷廣告是否更新
    [self getAdImage];
}
4、圖片下載姆坚,保存圖片名和跳轉(zhuǎn)的廣告鏈接
- (void)downLoadAdImageWithUrl:(NSString *)imageUrl imageName:(NSString *)imageName {
    
    NSURL *url = [NSURL URLWithString:imageUrl];
    
    [[SDWebImageDownloader sharedDownloader] downloadImageWithURL:url options:SDWebImageDownloaderUseNSURLCache progress:nil completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, BOOL finished) {
        //開始存儲圖片
        NSString *filePath = [self getFilePathWithImageName:imageName];
      
        if ([UIImagePNGRepresentation(image) writeToFile:filePath atomically:YES]) {
            [self deleteOldImage];
            //存新圖片和新廣告鏈接
            UserDefaultSetObjectForKey(imageName, adImageName);
            UserDefaultSetObjectForKey(imageUrl, adUrl);
            UserDefaultSynchronize;
        }
    }];
}

Demo下載

GitHub:https://github.com/CCBrother/ADPageViewDemo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末澳泵,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子旷偿,更是在濱河造成了極大的恐慌烹俗,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件萍程,死亡現(xiàn)場離奇詭異幢妄,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)茫负,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門蕉鸳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人忍法,你說我怎么就攤上這事潮尝。” “怎么了饿序?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵勉失,是天一觀的道長。 經(jīng)常有香客問我原探,道長乱凿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任咽弦,我火速辦了婚禮徒蟆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘型型。我一直安慰自己段审,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布闹蒜。 她就那樣靜靜地躺著寺枉,像睡著了一般抑淫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上型凳,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天丈冬,我揣著相機(jī)與錄音,去河邊找鬼甘畅。 笑死,一個胖子當(dāng)著我的面吹牛往弓,可吹牛的內(nèi)容都是我干的疏唾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼函似,長吁一口氣:“原來是場噩夢啊……” “哼槐脏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起撇寞,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤顿天,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蔑担,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體牌废,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年啤握,在試婚紗的時候發(fā)現(xiàn)自己被綠了鸟缕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡排抬,死狀恐怖懂从,靈堂內(nèi)的尸體忽然破棺而出蹲蒲,到底是詐尸還是另有隱情番甩,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布届搁,位于F島的核電站缘薛,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏咖祭。R本人自食惡果不足惜掩宜,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望么翰。 院中可真熱鬧牺汤,春花似錦、人聲如沸浩嫌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至追迟,卻和暖如春溶其,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背敦间。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工瓶逃, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人廓块。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓厢绝,卻偏偏與公主長得像,于是被迫代替她去往敵國和親带猴。 傳聞我的和親對象是個殘疾皇子昔汉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容