iOS利用Runtime实现友盟页面数据统计的功能示例

前言

一般项目中集成统计功能随因产品类型不同而使用功能不同,但大多数统计一般只有一个目的,就是记录用户习惯,研究用户习惯,从而为用户带来更好的体验,本文主要介绍了关于iOS用Runtime实现友盟页面数据统计功能的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

一、概念

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实现友盟统计的实例代码
时间: 2018-01-10

iOS通过Runtime实现友盟统计的实例代码

在友盟官网可以看到相应的步骤,申请appkey,导入SDK,然后在AppDelegate里面写入相应的代码,下面就是关键的代码: 实现页面的统计需要在每个UIViewController中配对调用如下方法: - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [MobClick beginLogPageView:@"PageOne"];//("PageOne"为页面名称,可

iOS中创建表格类视图WBDataGridView的实例代码

项目中创建表格, 引用头文件 #import "WBDataGridView.h" - (void)viewDidLoad{ [superviewDidLoad]; // Do any additional setup after loading the view. self.view.backgroundColor = [UIColorwhiteColor]; CGFloat margin = 10.f; CGFloat width = self.view.frame.size.wi

iOS开发中Swift 指纹验证功能模块实例代码

iOS调用TouchID代码: override func viewDidLoad() { super.viewDidLoad() let context = LAContext() var error: NSError? = nil let canEvaluatePolicy = context.canEvaluatePolicy(LAPolicy.deviceOwnerAuthenticationWithBiometrics, error: &error) as Bool if error

iOS实现左右可滑动的选择条实例代码分享

一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIViewController @end RootViewController.m #import "RootViewController.h" //引入头文件 #import "SVSegmentedControl.h" @interface RootView

IOS NSUserDefault 记住用户名及密码功能的实例代码

一般的登录界面都会有一个记住密码的选项,要实现这个功能可以使用NSUserDefault,这里只是讲解明文的处理方式,虽然这样是有一定的风险性的但是目前只是了解如何实现这个功能: 首先声明一个NSUserDefault对象: let userDefaults = NSUserDefaults.standardUserDefaults() //本地操作所需 然后根据是否记住密码按钮的状态来判断是否要为用户名和密码设置值,如果是记住密码,那么需要取出需要记住的密码,并且为这两个TextField赋值

iOS实现屏幕亮度和闪光灯控制的实例代码

这两天学习了iOS屏幕亮度和闪光灯控制,所以,今天添加一点小笔记. 所用涉及框架:AVFoundation框架和ImageIO 读取屏幕亮度:[UIScreen mainScreen].brightness; 设置屏幕亮度:[[UIScreen mainScreen] setBrightness:0.5]; 获取环境亮度主要代码: - (void)getTorch { AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMedi

iOS实现可以纵向横向滑动的表格实例代码

本文主要给大家介绍了关于iOS实现可以纵向横向滑动的表格的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 效果图 这个效果是今天公司项目里面遇上的,也是第一次遇见这种需求,所以记录下来,效果如上图.需求主要是可以实现上下的滑动,并且同时最左侧的"线路名称"这一列在向左滑动的时候是不能跟随滚动的.这个功能主要是实现用户可以方便查看关于一下难以看全的列表数据.下面说一下思路. 代码大体思路 由上面的GIF图和基本需求描述我们第一个想到的东西就是万能的tableview,没错,

iOS实现输入框跟随键盘自动上移的实例代码

场景还原 有些时候在包含输入框的页面中,点击输入框输入会因键盘弹起而遮挡住一部分输入框,影响用户体验.iOS在默认情况下并不会处理这种问题,不过我们可以自己实现键盘弹起输入框自动上移的效果. 实现思路 观察键盘的弹起与收回,当弹起的键盘会遮挡住输入框时,将输入框跟随键盘一并上移合适的距离,当键盘收回时,输入框回到原始状态. 具体方案 1. 注册两个观察者,观察键盘的弹起与收回 [[NSNotificationCenter defaultCenter] addObserver:self selec

iOS自定义日期、时间、城市选择器实例代码

选择器,我想大家都不陌生,当需要用户去选择某些范围值内的一个固定值时,我们会采用选择器的方式.选择器可以直观的提示用户选择的值范围.统一信息的填写格式,同时也方便用户快速的进行选择,比如对于性别,正常情况下就只有男女两种情况,那这时候用一个选择器给用户进行选择的话,可以避免错误数据的输入,也更方便用户去填写.再比如需要获取用户的生日信息时,采用选择器的方式可以统一生日的格式,如果让用户自行输入的话,可能会出现各种各样的生日信息格式,不利于数据的存储,但是采用选择器的方式的话,用户可找到对应的日期

iOS实现支持小数的星星评分组件实例代码

前言 评分功能是我们大家都不陌生的一个功能,现在在很多电商,外卖,餐饮型应用里随处可见,都会在商品结束后评价中有一个星星组件.核心思路就是用UIControl并自定义实现其中的trackTouch的几个方法.而显示不到一个的星星,比如半个星星的思路是根据分数切割星星的图像并显示其中一部分. 实现后效果如下: 单个星星的实现 对于单个星星的实现,先考虑星星有三个状态,完全置灰状态,完全高亮状态,根据百分比半高亮状态.而我这边用的是UIButton来实现,因为UIButton本身已经有普通,高亮,选