在App中添加數據統計功能(友盟)


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,從而解決問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM