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