iOS利用Runtime實(shí)現(xiàn)友盟頁面數(shù)據(jù)統(tǒng)計(jì)的功能示例
前言
一般項(xiàng)目中集成統(tǒng)計(jì)功能隨因產(chǎn)品類型不同而使用功能不同,但大多數(shù)統(tǒng)計(jì)一般只有一個(gè)目的,就是記錄用戶習(xí)慣,研究用戶習(xí)慣,從而為用戶帶來更好的體驗(yàn),本文主要介紹了關(guān)于iOS用Runtime實(shí)現(xiàn)友盟頁面數(shù)據(jù)統(tǒng)計(jì)功能的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧。
一、概念
1.實(shí)現(xiàn)頁面的統(tǒng)計(jì),需要在每一個(gè)類中實(shí)現(xiàn)這個(gè)方法:
- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [MobClick beginLogPageView:@"控制器類名"]; //當(dāng)然這里也可以使用self.title作為頁面的名稱,這樣在友盟后臺查看的時(shí)候更加方便些 //[MobClick beginLogPageView:self.title]; }
- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [MobClick endLogPageView:@"控制器類名"]; //當(dāng)然這里也可以使用self.title作為頁面的名稱,這樣在友盟后臺查看的時(shí)候更加方便些 //[MobClick endLogPageView:self.title]; }
2.用runmine + 分類+ load 實(shí)現(xiàn)一次性統(tǒng)計(jì)頁面的訪問次數(shù)
#import "UIViewController+UMTool.h" #import #import "RuntimeKit.h" @implementation UIViewController (UMTool)
+ (void)load { //創(chuàng)建新的viewWillAppear方法 [RuntimeKit methodSwap:[self class] firstMethod:@selector(viewWillAppear:) secondMethod:@selector(sh_viewWillAppear:)]; //創(chuàng)建新的viewWillDisappear方法 [RuntimeKit methodSwap:[self class] firstMethod:@selector(viewWillDisappear:) secondMethod:@selector(sh_viewWillDisappear:)]; }
- (void)sh_viewWillAppear:(BOOL)animated { [self sh_viewWillAppear:animated]; //開始友盟頁面統(tǒng)計(jì) [MobClick beginLogPageView:[RuntimeKit fetchClassName:[self class]]]; }
//新的viewWillDisappear方法 - (void)sh_viewWillDisappear:(BOOL)animated { [self sh_viewWillDisappear:animated]; //結(jié)束友盟頁面統(tǒng)計(jì) [MobClick endLogPageView:[RuntimeKit fetchClassName:[self class]]]; } @end
原理:是利用 runtime 把新建的sh_viewWillDisappear方法和系統(tǒng)的viewWillDisappear方法交換一下實(shí)現(xiàn)
3.自定義每個(gè)界面中 SEL 的訪問頁面次數(shù)和時(shí)長
提供思路:
1.首先建一個(gè)類,這個(gè)類專門寫友盟的相關(guān)方法
2.把所有的方法封裝好,然后讓別的類統(tǒng)一調(diào)用這個(gè)方法
好處:
方便團(tuán)隊(duì)管理和維護(hù),相當(dāng)于是業(yè)務(wù)層,
謝謝!!!
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
HTTP/2 協(xié)議用于 iOS 推送提醒服務(wù) (APNS)
基于JSON的請求和響應(yīng)對于每個(gè)通知,如果成功響應(yīng),將會返回200標(biāo)識 - 不用再去猜測通知是否被接收到響應(yīng)錯(cuò)誤將會以JSON字符消息的長度從2048個(gè)字節(jié)增加到4096個(gè)字節(jié)連接狀態(tài)可以通過HTTP/2的ping框架來進(jìn)行檢查.2016-04-04iOS開發(fā)教程之UIView和UIViewController的生命周期詳解
UIViewController是IOS程序中的一個(gè)重要組成部分,下面這篇文章主要給大家介紹了關(guān)于iOS開發(fā)教程之UIView和UIViewController的生命周期的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-04-04ios swift3.0實(shí)現(xiàn)二維碼掃描、生成、識別示例代碼
本篇文章主要介紹了ios swift3.0實(shí)現(xiàn)二維碼掃描、生成、識別示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-02-02iOS點(diǎn)擊推送消息跳到應(yīng)用指定頁面方法
現(xiàn)在的推送用的越來越頻繁,幾乎每個(gè)應(yīng)用都開始用到了。這篇文章主要介紹了iOS點(diǎn)擊推送消息跳到應(yīng)用指定頁面方法,有需要的可以了解一下。2016-11-11詳解iOS中UIView的layoutSubviews子視圖布局方法使用
這篇文章主要介紹了iOS中UIView的layoutSubviews子視圖布局方法使用,文中舉了一個(gè)layoutSubviews在iPad橫豎屏切換時(shí)被調(diào)用用來重新布局的實(shí)例,需要的朋友可以參考下2016-04-04iOS給border設(shè)置漸變色的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于iOS給border設(shè)置漸變色的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03詳解iOS應(yīng)用開發(fā)中使用設(shè)計(jì)模式中的抽象工廠模式
這篇文章主要介紹了iOS應(yīng)用開發(fā)中使用設(shè)計(jì)模式中的抽象工廠模式,示例代碼為傳統(tǒng)的Objective-C,需要的朋友可以參考下2016-03-03iOS界面跳轉(zhuǎn)時(shí)導(dǎo)航欄和tabBar的隱藏與顯示功能
這篇文章主要介紹了iOS界面跳轉(zhuǎn)時(shí)導(dǎo)航欄和tabBar的隱藏與顯示功能,需要的朋友可以參考下2017-02-02