提示
请先在友盟的管理后台中创建App,获得AppKey
导入SDK
所需文件: 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
。
到此,基本统计功能集成已经完成。
[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];
}
}