美文网首页iOS学习HTML5 专栏互联网科技
iOS 用Runtime实现友盟页面数据统计功能

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

作者: 石虎132 | 来源:发表于2018-01-10 10:09 被阅读147次

    //联系人:石虎 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.把所有的方法封装好,然后让别的类统一调用这个方法

        好处:

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

    谢谢!!!

    相关文章

      网友评论

        本文标题:iOS 用Runtime实现友盟页面数据统计功能

        本文链接:https://www.haomeiwen.com/subject/urgnnxtx.html