zoukankan      html  css  js  c++  java
  • 在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,从而解决问题
  • 相关阅读:
    Bit Manipulation
    218. The Skyline Problem
    Template : Two Pointers & Hash -> String process
    239. Sliding Window Maximum
    159. Longest Substring with At Most Two Distinct Characters
    3. Longest Substring Without Repeating Characters
    137. Single Number II
    142. Linked List Cycle II
    41. First Missing Positive
    260. Single Number III
  • 原文地址:https://www.cnblogs.com/moxuexiaotong/p/4876130.html
Copyright © 2011-2022 走看看