美文网首页iOS开发
iOS开发之友盟埋点

iOS开发之友盟埋点

作者: Stephen_Huang | 来源:发表于2018-02-01 09:56 被阅读0次
这两天在对项目进行友盟埋点,顺便对这块进行了一个详细的了解友盟集成就不多说了,百度一下教程一堆,什么你不知道怎么百度? image.png

如果只是对页面进行埋点的话,可以使用Runtime进行埋点
首先写一个UIViewController的分类方法
然后写一个替换方法

+ (void)ps_swizzleSelector:(SEL)originalSelector newSelector:(SEL)newSelector {
    Method originalMethod = class_getInstanceMethod(self, originalSelector);
    Method newMethod = class_getInstanceMethod(self, newSelector);
    
    BOOL methodAdded = class_addMethod([self class], originalSelector, method_getImplementation(newMethod), method_getTypeEncoding(newMethod));
    if (methodAdded) {
        class_replaceMethod([self class], newSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod));
    }
    else {
        method_exchangeImplementations(originalMethod, newMethod);
    }
}

然后对ViewWillAppear 和ViewWillDisappear方法进行一个提换

+ (void)load {
    
    SEL orgAppear = @selector(viewWillAppear:);
    SEL newAppear = @selector(ps_viewWillAppear:);
    [self ps_swizzleSelector:orgAppear newSelector:newAppear];
    
    SEL orgDisAppear = @selector(viewWillDisappear:);
    SEL newDisAppear = @selector(ps_viewWillDisappear:);
    [self ps_swizzleSelector:orgDisAppear newSelector:newDisAppear];
}

- (void)ps_viewWillAppear:(BOOL)animated {
    [self ps_viewWillAppear:animated];
    Class cls = [self class];
    if (![cls isSubclassOfClass:[UINavigationController class]] && ![cls isSubclassOfClass:[UITabBarController class]] ) {
        [MobClick beginLogPageView:NSStringFromClass([self class])];
    }
   
}

- (void)ps_viewWillDisappear:(BOOL)animated {
    [self ps_viewWillDisappear:animated];
    Class cls = [self class];
     if (![cls isSubclassOfClass:[UINavigationController class]] && ![cls isSubclassOfClass:[UITabBarController class]] ) {
         [MobClick endLogPageView:NSStringFromClass([self class])];
     }
}

以上是对页面进行埋点,要想对用户行为做一个更为详细的埋点,就需要对单独点击事件进行埋点,这个需要手动对每个方法进行埋点,如果是安卓跟iOS两个端的话工作量就要乘以二了,这也是前端埋点的弊端所在

image.png
建议写一个单独的埋点类,在类方法里调用友盟提供的方法,方便以后传参,给自己留条后路,关于埋点的一些总结这位大神做了一个总结,感兴趣的可以去看看
传送门

相关文章

  • iOS开发之友盟埋点

    如果只是对页面进行埋点的话,可以使用Runtime进行埋点首先写一个UIViewController的分类方法然后...

  • iOS 利用友盟进行埋点统计

    前言:本文讲诉的埋点是利用友盟进行的技术代码埋点 MobClick,进行代码埋点首先需要到友盟开发者平台进行创建事...

  • 埋点

    目前,iOS 开发中常见的埋点方式,主要包括代码埋点、可视化埋点和无埋点这三种。我们都知道,在 iOS 开发中最常...

  • iOS之友盟分享

    在我们的项目中我们经常会使用到第三方分享,最近做项目的时候我使用了友盟实现第三方分享,下面说说我集成友盟实现第三方...

  • 戴铭(iOS开发课)读书笔记:09章节-无侵入埋点

    原文链接:无侵入的埋点方案如何实现? 前言: 原文中介绍了iOS开发常见的埋点方式:代码埋点、可视化埋点和无埋点。...

  • 关于app内嵌H5的埋点

    遇到的两种埋点 友盟和talkingdata1.友盟 有引入JS的埋点2.talkingdata 在app埋点中...

  • 无痕埋点方案探究

    目前埋点的设计大致有以下几种:参考 网易HubbleData无埋点SDK在iOS端的设计与实现 1、代码埋点由开发...

  • Flutter 集成友盟统计

    Flutter 开发的 App 实现埋点,如果需要集成友盟统计,使用这个插件:umeng_analytics_pl...

  • iOS之友盟统计浅析

    参考链接1 参考链接2

  • 友盟微信登录,分享。

    以下全是正事: 关于友盟的UShare如何安装,请移步到友盟官方文档iOS | iOS | 开发者中心 | 友盟-...

网友评论

    本文标题:iOS开发之友盟埋点

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