溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

iOS如何利用Runtime實(shí)現(xiàn)友盟頁(yè)面數(shù)據(jù)統(tǒng)計(jì)功能

發(fā)布時(shí)間:2021-06-17 15:01:25 來(lái)源:億速云 閱讀:116 作者:小新 欄目:移動(dòng)開(kāi)發(fā)

這篇文章主要為大家展示了“iOS如何利用Runtime實(shí)現(xiàn)友盟頁(yè)面數(shù)據(jù)統(tǒng)計(jì)功能”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“iOS如何利用Runtime實(shí)現(xiàn)友盟頁(yè)面數(shù)據(jù)統(tǒng)計(jì)功能”這篇文章吧。

一、概念

1.實(shí)現(xiàn)頁(yè)面的統(tǒng)計(jì),需要在每一個(gè)類(lèi)中實(shí)現(xiàn)這個(gè)方法:

- (void)viewWillAppear:(BOOL)animated
 {
[super viewWillAppear:animated];
[MobClick beginLogPageView:@"控制器類(lèi)名"];
  //當(dāng)然這里也可以使用self.title作為頁(yè)面的名稱(chēng),這樣在友盟后臺(tái)查看的時(shí)候更加方便些
  //[MobClick beginLogPageView:self.title];
 }
- (void)viewWillAppear:(BOOL)animated
 {
[super viewWillAppear:animated];
[MobClick endLogPageView:@"控制器類(lèi)名"];
  //當(dāng)然這里也可以使用self.title作為頁(yè)面的名稱(chēng),這樣在友盟后臺(tái)查看的時(shí)候更加方便些
  //[MobClick endLogPageView:self.title];
 }

2.用runmine + 分類(lèi)+ load 實(shí)現(xiàn)一次性統(tǒng)計(jì)頁(yè)面的訪(fǎng)問(wèn)次數(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];
 //開(kāi)始友盟頁(yè)面統(tǒng)計(jì)
[MobClick beginLogPageView:[RuntimeKit fetchClassName:[self class]]];
 }
 //新的viewWillDisappear方法
- (void)sh_viewWillDisappear:(BOOL)animated
 {
[self sh_viewWillDisappear:animated];
 //結(jié)束友盟頁(yè)面統(tǒng)計(jì)
[MobClick endLogPageView:[RuntimeKit fetchClassName:[self class]]];
 }
 @end

原理:是利用 runtime 把新建的sh_viewWillDisappear方法和系統(tǒng)的viewWillDisappear方法交換一下實(shí)現(xiàn)

3.自定義每個(gè)界面中 SEL 的訪(fǎng)問(wèn)頁(yè)面次數(shù)和時(shí)長(zhǎng)

提供思路:

 1.首先建一個(gè)類(lèi),這個(gè)類(lèi)專(zhuān)門(mén)寫(xiě)友盟的相關(guān)方法

 2.把所有的方法封裝好,然后讓別的類(lèi)統(tǒng)一調(diào)用這個(gè)方法
    好處:

    方便團(tuán)隊(duì)管理和維護(hù),相當(dāng)于是業(yè)務(wù)層,

以上是“iOS如何利用Runtime實(shí)現(xiàn)友盟頁(yè)面數(shù)據(jù)統(tǒng)計(jì)功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI