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,从而解决问题
  • 相关阅读:
    用于Web开发的8 个最好的跨平台编辑器
    javascript之数组操作
    15 个最佳的 jQuery 表格插件
    使用Backbone构建精美应用的7条建议
    linux内核内存分配(一、基本概念)
    redhat的systemd版本list
    Linux内核crash/Oops异常定位分析方法
    systemd bug: bz1437114 core:execute: fix fork() fail handling in exec_spawn()
    Use gdb attach pid and debug it
    Build rpm example:zram
  • 原文地址:https://www.cnblogs.com/moxuexiaotong/p/4876130.html
Copyright © 2011-2022 走看看