Umeng IOS开发应用

来源:互联网 发布:奚梦瑶长相知乎 编辑:程序博客网 时间:2024/05/09 09:14

 基本功能集成指南:详细参见:http://dev.umeng.com/analytics/ios/quick-start

提示 
请先在友盟的管理后台中创建App,获得AppKey

  • 导入SDK

    • 下载 Analytics_iOS_SDK.zip并解压缩。
    • 导入插件

    所需文件: libMobClickLibrary.a MobClick.h

    请在你的工程目录结构中,右键选择Add->Existing Files…,选择这两个文件。或者将这两个文件拖入XCode工程目录结构中,在弹出的界面中勾选Copy items into destination group's folder(if needed), 并确保Add To Targets勾选相应的target。

    • 配置

    添加依赖框架(Framework)和编译器选项
    TARGETS-->Build Phases-->Link Binary With Libraries--> + -->libz.dylib

  • 添加代码

    打开*AppDelegate.m,添加代码

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ [MobClick startWithAppkey:@"xxxxxxxxxxxxxxx"];}

    或指定渠道和发送策略

    [MobClick startWithAppkey:@"xxxxxxxxxxxxxxx" reportPolicy:SEND_INTERVAL   channelId:@"Web"];

说明

1.使用BATCH策略,更省流量, channelId 为nil@""时,默认会被被当作@"App Store"渠道。

2.其中ReportPolicy可选值有: REALTIME,BATCH,SENDWIFIONLY,SEND_INTERVAL,SEND_ON_EXIT

3.其中REALTIME,SENDWIFIONLY 只在模拟器DEBUG模式下生效,真机release模式会自动改成BATCH。 关于发送策略的调整,请参见 关于发送策略及发送策略变更的说明

4.SEND_INTERVAL 为按最小间隔发送,默认为10秒,取值范围为10 到 86400(一天), 如果不在这个区间的话,会按10设置。

5.你可以调用[MobClick setLogSendInterval:60]; 来改变这个最小间隔值。

6.SEND_ON_EXIT 为退出或进入后台时发送,这种发送策略在App运行过程中不发送,对开发者和用户的影响最小。 不过这种发送策略只在iOS > 4.0时才会生效, iOS < 4.0 会被自动调整为BATCH

到此,基本统计功能集成已经完成。

3. 测试与调试

3.1. 开启调试模式

[MobClick setLogEnabled:YES];4.日志记录和版本更新

-(void)OpenUMeng //打开友盟

{

    [MobClick setCrashReportEnabled:YES]; // 如果不需要捕捉异常,注释掉此行

    //    [MobClick setLogEnabled:YES];  // 打开友盟sdk调试,注意Release发布时需要注释掉此行,减少io消耗

    [MobClick setAppVersion:XcodeAppVersion]; //参数为NSString * 类型,自定义app版本信息,如果不设置,默认从CFBundleVersion里取

    //

    [MobClick startWithAppkey:UMENG_APPKEY reportPolicy:(ReportPolicy) REALTIME channelId:@"YunFeng"];

    //   reportPolicy为枚举类型,可以为 REALTIME, BATCH,SENDDAILY,SENDWIFIONLY几种

    //   channelId NSString * 类型,channelId nil@"",默认会被被当作@"App Store"渠道

    

    //    [MobClick checkUpdate];   //自动更新检查, 如果需要自定义更新请使用下面的方法,需要接收一个(NSDictionary *)appInfo的参数

    [MobClick checkUpdateWithDelegate:self selector:@selector(updateMethod:)];

    

    [MobClick updateOnlineConfig];  //在线参数配置

    

}

- (void)updateMethod:(NSDictionary *)appInfo {

    NSLog(@"update info %@",appInfo);

    if([[appInfo objectForKey:@"update"] isEqualToString:@"YES"]==YES)

    {

        NSString *newVersion = [[NSString alloc]initWithString:[appInfo objectForKey:@"version"]];

        self.newVersionPath = [[NSString alloc]initWithString:[appInfo objectForKey:@"path"]];

        UIAlertView *alert = [[UIAlertView alloc]initWithTitle:[NSString stringWithFormat:@"有新版本V%@",newVersion] message:[NSString stringWithString:[appInfo objectForKey:@"update_log"]] delegate:self cancelButtonTitle:@"下次再说" otherButtonTitles:@"更新", nil];

        [alert show];

        

    }

}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

{

    if(buttonIndex==1)

    {

        NSURL *url = [NSURL URLWithString:self.newVersionPath];  [[UIApplication sharedApplication]openURL:url];

    }

}