前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开发后期在各个页面中添加友盟统计

开发后期在各个页面中添加友盟统计

作者头像
用户1451823
发布2018-09-13 16:15:15
1.9K1
发布2018-09-13 16:15:15
举报
文章被收录于专栏:DannyHoo的专栏DannyHoo的专栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1337913

最近项目已经上线,可上线后老板又让添加一个友盟统计,以便运营查看,于是本人便开始看友盟统计的开发文档了。

友盟统计中要求在每个页面的viewWillAppear和viewWillDisappear方法中添加友盟统计的方法:

  • (void)viewWillAppear:(BOOL)animated

{

    super viewWillAppear:YES;

    MobClick beginLogPageView:@"DiscoverController";

}

  • (void)viewWillDisappear:(BOOL)animated

{

    super viewWillDisappear:YES;

    MobClick endLogPageView:@"DiscoverController";

}

可现在项目已经开发完成,如果要再在每个页面中加入友盟统计的方法会耗费大量时间。而且这样做,会使代码的复用性差即不能让其他要使用友盟的项目复用。我在放弃这样的做法后就开始寻找新的解决方法,最后找到了一个很好的解决方法即借助运行时,在运行时替换方法。代码如下:

  • (void)load

{

Method m1;

Method m2;

// 运行时替换方法

    m1 = class_getInstanceMethod(self, @selector(statisticsViewWillAppear:));

    m2 = class_getInstanceMethod(self, @selector(viewWillAppear:));

method_exchangeImplementations(m1, m2);

    m1 = class_getInstanceMethod(self, @selector(statisticsViewWillDisappear:));

    m2 = class_getInstanceMethod(self, @selector(viewWillDisappear:));

method_exchangeImplementations(m1, m2);

}

  • (void) statisticsViewWillAppear:(BOOL)animated

{

    self statisticsViewWillAppear:animated;

    [MobClick beginLogPageView:NSStringFromClass(self class)];

}

-(void) statisticsViewWillDisappear:(BOOL)animated

{

    self statisticsViewWillDisappear:animated;

    [MobClick endLogPageView:NSStringFromClass(self class)];

}

此方法写在UIViewController的一个分类中,然后在Header.h文件中导入此分类的头文件。load类方法会在每个页面中被调用,在运行时,viewWillAppear 方法会被statisticsViewWillAppear替换,viewWillDisappear会被statisticsViewWillDisappear替换,且每个页面的viewWillAppear、viewWillDisappear方法仍然有效。

个人感觉这是一个很好地能解决多个页面统计的分类。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年09月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档