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,从而解决问题
  • 相关阅读:
    iOS沙盒路径
    iOS第三方语音-讯飞语音
    iOS第三方分享-ShareSDK
    iOS第三方语音-微信语音
    iOS-xib(自定义UITableViewCell)
    UITableView点击背景
    OC开发_Storyboard——UIApplication和网络活动指示器
    OC开发_Storyboard——绘制和视图
    OC开发_Storyboard——block和动画
    OC开发_Storyboard——NaviationController简单例子
  • 原文地址:https://www.cnblogs.com/moxuexiaotong/p/4876130.html
Copyright © 2011-2022 走看看