您的位置:首页 > 移动开发

在App中添加数据统计功能(友盟)

2015-10-13 22:37 519 查看
1.首先在友盟平台添加新应用中,申请一个新应用,然后得到一个appkey.

2.下载ios平台的sdk文件,将以下两个文件拖入工程中。

(1)libMobClickLibrary.a


(2)MobClick.h


3.添加类库:

TARGETS-->Build Phases-->Link Binary With Libraries--> + -->libz.dylib (Xcode7请选择libz.tbd)


如过使用cocopod添加,可用:(pod 'UMengAnalytics')。

4.实现相关方法:

#import <Foundation/Foundation.h>

@interface StateCollect : NSObject

+ (void)setup;

+ (void)intoPage:(NSString *)pageName;
+ (void)outPage:(NSString *)pageName;

+ (void)event:(NSString *)event
value:(NSString *)value;

@end


#import "StateCollect.h"
#import "MobClick.h"
#define ChannelEnterprise   @"Enterprise"
@implementation StateCollect
#define UMengKey    @""
+ (void)setup
{
NSString *chanel = ChannelEnterprise;
#ifdef APPSTORE
chanel = ChannelAppStore;
#endif

[MobClick startWithAppkey:UMengKey
reportPolicy:REALTIME
channelId:chanel];

}

+ (void)intoPage:(NSString *)pageName
{
[MobClick beginLogPageView:pageName];
}

+ (void)outPage:(NSString *)pageName
{
[MobClick endLogPageView:pageName];
}

+ (void)event:(NSString *)event
value:(NSString *)value
{
[MobClick event:event label:value];
}


5.在appdelegate中建立链接:

[StateCollect setup];

注:StateCollect为我建立的NSObject页面

6.在统计界面加入调用统计的方法:

-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[StateCollect intoPage:NSStringFromClass([self class])];
}
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[StateCollect outPage:NSStringFromClass([self class])];
}


7.如果你在友盟的我的应用程序中,添加了相关事件的统计,可调用这个方法来进行统计:

[StateCollect event:@"Login" value:NSStringFromClass([self class])];

注:Login为我在设置的相关事件。

8.如果你是第一次使用友盟,那你需要在:我的产品->设置->应用信息中,开启使用:



完成以上设置后,运行程序,发现以下错误:

"_compress2", referenced from:
+[UMANUtil deflatedDataPrefixedWith:level:source:] in libMobClickLibrary.a(UMANUtil.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)




可以通过设置Other Linker Flag的值未-lz来解决。



类似的其他
"_compress2", referenced from:
"_inflateReset", referenced from:
"_inflateInit_", referenced from:
"_inflateEnd", referenced from:
"_inflateInit2_", referenced from:
均可以通过-lz来解决。

-lz 会让你的程序在编译的时候against the built-in zlib,从而解决问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: