iOS 用Runtime实现友盟页面数据统计功能

字数 401阅读 505

//联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪

一、概念

1.实现页面的统计,需要在每一个类中实现这个方法:

- (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 实现一次性统计页面的访问次数

#import "UIViewController+UMTool.h"

#import 

#import "RuntimeKit.h"

 @implementation UIViewController (UMTool)

+ (void)load

    {

 //创建新的viewWillAppear方法

[RuntimeKit methodSwap:[self class] firstMethod:@selector(viewWillAppear:) secondMethod:@selector(sh_viewWillAppear:)];


 //创建新的viewWillDisappear方法

[RuntimeKit methodSwap:[self class] firstMethod:@selector(viewWillDisappear:) secondMethod:@selector(sh_viewWillDisappear:)];

    }

- (void)sh_viewWillAppear:(BOOL)animated

    {

[self sh_viewWillAppear:animated];

 //开始友盟页面统计

[MobClick beginLogPageView:[RuntimeKit fetchClassName:[self class]]];


    }

 //新的viewWillDisappear方法

- (void)sh_viewWillDisappear:(BOOL)animated

    {

[self sh_viewWillDisappear:animated];

 //结束友盟页面统计

[MobClick endLogPageView:[RuntimeKit fetchClassName:[self class]]];


    }

 @end

    原理:是利用 runtime 把新建的sh_viewWillDisappear方法和系统的viewWillDisappear方法交换一下实现

3.自定义每个界面中 SEL 的访问页面次数和时长

    提供思路:

 1.首先建一个类,这个类专门写友盟的相关方法

 2.把所有的方法封装好,然后让别的类统一调用这个方法

    好处:

    方便团队管理和维护,相当于是业务层,

谢谢!!!

推荐阅读更多精彩内容