前言:实现数据监控有很多平台,比如友盟、TalkingData等,本文主要讲解TalkingData。

第一步:导入sdk,这个大家可以看官网

第二步:自定义类

#import <Foundation/Foundation.h>@interface CWTraceManager : NSObject/**注册跟踪*/
+ (void)registerTrace;/**上传地理位置@param latitude 纬度@param longitude 经度*/
+ (void)uploadAddressWithLatitude:(double)latitude longitude:(double)longitude;/**开始跟踪@param pageName 页面名称*/
+ (void)trackPageBegin:(NSString *)pageName;/**结束跟踪@param pageName 页面名称*/
+ (void)trackPageEnd:(NSString *)pageName;@end
#import "CWTraceManager.h"
#import "TalkingData.h"@implementation CWTraceManager#pragma mark 注册跟踪
+ (void)registerTrace
{//1.捕捉程序崩溃记录[TalkingData setExceptionReportEnabled:YES];//2.注册[TalkingData sessionStarted:@"8515B59DA24F44929E1E36742FC175F2" withChannelId:@"AppStore"];
}#pragma mark 上传地址
+ (void)uploadAddressWithLatitude:(double)latitude longitude:(double)longitude
{[TalkingData setLatitude:latitude longitude:longitude];
}#pragma mark 开始跟踪
+ (void)trackPageBegin:(NSString *)pageName
{[TalkingData trackPageBegin:pageName];
}#pragma mark 结束跟踪
+ (void)trackPageEnd:(NSString *)pageName
{[TalkingData trackPageEnd:pageName];
}@end

实现页面监控,需要实现下面这个

#import <UIKit/UIKit.h>@interface UIViewController (Trace)@end
#import "UIViewController+Trace.h"
#import <objc/runtime.h>
#import "TalkingData.h"@implementation UIViewController (Trace)+ (void)load {static dispatch_once_t onceToken;dispatch_once(&onceToken, ^{Class class = [self class];[self swizzlingMethod:@"viewWillAppear:" originalMethodString:@"trace_viewWillAppear:" class:class];[self swizzlingMethod:@"viewWillDisappear:" originalMethodString:@"trace_viewWillDisappear:" class:class];});
}+ (void)swizzlingMethod:(NSString *)swizzledMethodString originalMethodString:(NSString *)originalMethodString class:(Class)class
{//获取系统方法IMPMethod originalMethod = class_getInstanceMethod(class, NSSelectorFromString(originalMethodString));//自定义方法的IMPMethod swizzledMethod = class_getInstanceMethod(class, NSSelectorFromString(swizzledMethodString));BOOL didAddMethod = class_addMethod(class, NSSelectorFromString(originalMethodString), method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod));if (didAddMethod) {class_replaceMethod(class, NSSelectorFromString(swizzledMethodString), method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod));} else {//IMP相互交换,方法的实现也就互相交换了method_exchangeImplementations(originalMethod, swizzledMethod);}
}- (void)trace_viewWillAppear:(BOOL)animated {[self trace_viewWillAppear:animated];[TalkingData trackPageBegin:NSStringFromClass([self class])];
}- (void)trace_viewWillDisappear:(BOOL)animated
{[self trace_viewWillDisappear:animated];[TalkingData trackPageEnd:NSStringFromClass([self class])];
}@end

IOS TalkingData实现数据监控相关推荐

  1. App性能分析数据监控

    App性能分析数据监控 APP的性能监控包括: CPU 占用率.内存使用情况.网络状况监控.启动时闪退.卡顿.FPS.使用时崩溃.耗电量监控.流量监控等等. 文中所有代码都已同步到github中,有兴 ...

  2. 信贷风控之数据监控与分析

    数据监控 前言 如何做数据监控 信贷风控中的业务指标 监控部署 监控数据异常分析(思路可衍生到传统数据分析) 总结 前言 无论是数据分析还是数据建模分析的工作属于前期工作,后期的维护还需要严格监控来维 ...

  3. SEO数据监控技巧都有哪些?

    想要网站优化成果能够得到更好的效果,并且帮助优化人员制定更优质.精准的优化方案,所以就需要对网站优化的相关数据进行全面的了解,那么在网站优化中SEO数据信息中,有哪些可以监控呢? 一.SEO综合指标查 ...

  4. 万字长文详解大数据应用实战案例-万亿级大数据监控平台建设方案

    前言 随着互联网业务的迅速发展,用户对系统的要求也越来越高,而做好监控为系统保驾护航,能有效提高系统的可靠性.可用性及用户体验.监控系统是整个运维环节乃至整个项目及产品生命周期中最重要的一环.百分点大 ...

  5. ios获取新数据要不要关_ios获取新数据要不要关

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. ios获取新数据是否要关可以根据需要选择,选择以手动形式获取数据,但是这样您将不能收到实时的邮件提醒. iOS(原名为iPhone ...

  6. vue怎么传数据给后台_千万日活级产品人必备:数据监控后台之数据指标怎么选?...

    [导读]通过核心业务驱动是快速搭建数据监控指标体系的不二法则! 文|三爷 3530字 1 为什么要有数据监控后台? 随着创业大潮的兴起,市场中很多初创公司在初期为了快速上线,往往选择只进行功能开发,而 ...

  7. 实时监控后台数据 vue_实时数据监控,快速掌握B站爆款视频热度走向

    飞瓜数据B站版的数据监控功能提供对B站UP主监控功能,实时掌握UP主视频热度走向和投放效果. 通过监控输入B站视频链接,设定24/48时长开始对其监控.监控开始后在监控报告中查看对应视频的数据曲线变化 ...

  8. 没有一款趁手的数据监控软件?试一下NetData不,用了你就绝对离不开他!

    没有一款趁手的数据监控软件?试一下NetData不,用了你就绝对离不开他! Netdata是分布式的,用于系统和应用程序的实时性能和运行状况监控.它是您安装在所有系统和容器上高度优化的监视代理. Ne ...

  9. 134_Power BI Report Server之某消费品运营数据监控

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一背景 最近很久都没有更新文章了,研究了下Power BI Report Server(下文简称pbirs). 今天把pb ...

  10. IOS中JSON数据的解析

    IOS中JSON数据解析 官方为我们提供的解析JSON数据的类是NSJSONSerialization,首先我们先来看下这个类的几个方法: + (BOOL)isValidJSONObject:(id) ...

最新文章

  1. php样式无法加载 路径对的,网站首页 有时加载不了样式
  2. 永恒之蓝漏洞原理 445_新代码漏洞“永恒之黑”该如何警惕?
  3. 从0到1入门:7天玩转IoT物联网实战营丨IoT喊你加入学习之旅!
  4. 生活杂记 - 丢东西
  5. excel自动换行快捷键_Excel中Alt键的10大应用技巧解读
  6. zigbee学习之zigbee应用框架
  7. 数格子算面积的方法_数格子估算面积与数格点估算面积
  8. 【二】[详细]针孔相机模型、相机镜头畸变模型、相机标定与OpenCV实现
  9. LiveChart样式参数介绍
  10. 用python给女朋友惊喜_怎样用Python讨您的女朋友欢心(附源码)?女孩很好哄的嘛! zt...
  11. 计算机视觉摔倒检测,有关摔倒检测数据集(fall detection databases)
  12. OpenCalib:自动驾驶多传感器开源标定工具箱
  13. 互联网公司招聘--奇虎360--研发工程师--2016年笔试题
  14. C++连接MySQL数据库(利用API)
  15. 如何建立自己的技术壁垒
  16. js实现倒计时5秒提交及redis防止多人同时提交
  17. DAY-15 发表SCI的方法和技巧
  18. Linux大师(古鲁)话说USB发行版
  19. Unity MlAgent 使用介绍
  20. Android—Java层与Native层对象的关联

热门文章

  1. 华北电力计算机类哪个专业好,华北电力和北京化工的计算机专业那个好?
  2. 数据分析师到底是做什么的?写Python或SQL语句?
  3. 画图计算机应用基础,计算机应用基础教案:Windows XP附件——写字板、画图.doc...
  4. 如何把计算机桌面图标放到底下,怎么把电脑桌面图标放在任意位置
  5. 设计模式——设计模式概述
  6. linux系统Nginx下limit_req模块burst参数超详细解析
  7. 【行业专题报告】酒类(白酒、啤酒)-专题资料
  8. linux挖矿检测,详谈挖矿木马的检测和解决方案
  9. Excel不同列多条件计数
  10. 自己用命令强制删除占用的文件或文件夹