由于我们的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