iOS中自定义界面统计(统计一定时间内访问次数,以及停留时间)

本文介绍了一种在iOS应用中自定义界面访问统计和停留时间的方法,通过创建statistics类来记录和计算每个界面的访问次数和停留时间,并在一定时间间隔后将数据上传到服务器。详细代码实现包括统计次数、停留时间和打包字典的方法。
摘要由CSDN通过智能技术生成

由于我们的app做的是p2p以及奇葩的产品经理,好好的友盟统计不用,非要用自己和服务器交互的统计,只能自己写,然后每隔一段时间上传一次咯!


直接上代码吧!

1.首先自定义一个类:(用于统计次数和停留时间的方法)

//

//  statistics.h

//  WuXianMoney

//

//  Created by GF on 16/3/29.

//  Copyright © 2016 WXDL. All rights reserved.

//


#import <Foundation/Foundation.h>


@interface statistics : NSObject

/*

 简易统计界面停留时间/以及次数:

 */



+(void)staticsvisitTimesDataWithViewControllerType:(NSString *)type;//统计次数

+(void)staticsstayTimeDataWithType:(NSString *)type WithController:(NSString *)name;//统计时间计算,type: 1代表进入界面 2 :出界面

+(NSString *)staticsTimeDataWithController:(NSString *)name;//统计时间,一直停留的

+(NSString *)getStayTime:(NSString *)controller;

+(void)removeLocalDataWithController:(NSString *)name;//清除本地数据;

+(NSDictionary *)packageDictionary:(NSString *)name WithType:(NSString *)type;//打包字典

@end


//

//  statistics.m

//  WuXianMoney

//

//  Created by GF on 16/3/29.

//  Copyright © 2016 WXDL. All rights reserved.

//


#import "statistics.h"


@implementation statistics

/*

 

 key-Value值对应关系:

   界面名称:----访问次数

   1界面名称----进入界面时刻

   2界面名称-----离开界面时刻

   界面名称histime------界面停留历史时间

   界面名称time--------界面停留总时间

   界面名称oppositeTime----相对时间

 */


#pragma mark-

#pragma mark 统计次数

+(void)staticsvisitTimesDataWithViewControllerType:(NSString *)type

{


    NSString * timesStart=[ZJDataSaver getStringForKey:type]?[ZJDataSaver getStringForKey:type]:nil;

    int add=[timesStart intValue];

    add++;

    [ZJDataSaver saveString:[NSString stringWithFormat:@"%d",add] forKey:type];

    

}

+(void)staticsstayTimeDataWithType:(NSString *)type WithController:(NSString *)name//计算一次在该界面停留的时间

{

    switch ([type intValue]) {

        case 1://用来获取进入界面的时刻

        {

        

            NSDate * date=[NSDate date];

            NSString * dateStr=[NSString stringWithFormat:@"%0.f",[date timeIntervalSince1970]];

            [ZJDataSaver saveString:dateStr forKey:[NSString stringWithFormat:@"%@%@",type,name]];

        }

            

            break;

            

        case 2://用来获取离开界面的时刻    /**/

            

            

    

        {

            NSDate * date=[NSDate date];

            NSString * dateStr=[NSString stringWithFormat:@"%0.f",[date timeIntervalSince1970]];

            [ZJDataSaver saveString:dateStr forKey:[NSString stringWithFormat:@"%@%@",type,name]];

            NSString * startTime=[ZJDataSaver getStringForKey:[NSString stringWithFormat:@"%@%@",@"1",name]]?[ZJDataSaver getStringForKey:[NSString stringWithFormat:@"%@%@",@"1",name]]:@"0";//进入界面时间

            NSString * endTime=[ZJDataSaver getStringForKey:[NSString stringWithFormat:@"%@%@",@"2",name]]?[ZJDataSaver getStringForKey:[NSString stringWithFormat:@"%@%@",@"2",name]]:@"0";;//离开界面时间

            long

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值