拿友盟举例子
友盟比较好使,友盟看了他们的文档 他告诉你你要在 appdelegate didFinishLaunch方法里面写了这个东西
[UMSocialData setAppKey:@"XX"]; // 注册微信 [UMSocialWechatHandler setWXAppId:@"XXX" appSecret:@"XX" url:@""]; // 注册QQ [UMSocialQQHandler setQQWithAppId:@"XXX" appKey:@"XXX" url:@""];
我们需要统计下我页面的信息 你接入了友盟的统计 在appdelegate didFinishLaunch又 多了行代码
需求是无穷无尽 我需要bug统计(fir hud) 提醒用户评分系统(iRate) 推送(jPush 信鸽 个推。。)
决心一定要把代码封装的完美
IQKeyBoardManage和iRate这种智能的大牛的readme 写了这段话
Key Features 1) CODELESS, Zero Line Of Code 不需要写任何代码 2) Works Automatically //自动工作 3) No More UIScrollView //不需要scrollview 4) No More Subclasses //不需要继承父类 5) No More Manual Work //不需要配置 6) No More #imports //不需要导入
其实不神奇 只是大牛用了 + load这个方法
学习OC都知道这个代码会在一个类被加载到运行库中就会被自动调用 这不就实现了 自动调用
#import <foundation foundation.h=""> @interface ThirdPartService : NSObject @end #import "ThirdPartService.h" #import "UMSocial.h" #import "UMSocialWechatHandler.h" #import "UMSocialQQHandler.h" #import <mobclick.h> #import <fir fir.h=""> @implementation ThirdPartService + (void)load {static dispatch_once_t onceToken;dispatch_once(&onceToken, ^{ // TODO 这里是我自己测试的 fir hud [FIR handleCrashWithKey:@"XX"]; // 友盟 [UMSocialData setAppKey:@"XX"]; // 隐藏未安装的平台 [UMSocialConfig hiddenNotInstallPlatforms:@[UMShareToQQ,UMShareToQzone,UMShareToWechatSession,UMShareToWechatTimeline]]; // 注册微信 [UMSocialWechatHandler setWXAppId:@"XX" appSecret:@"XX" url:@""]; // 注册QQ // TODO QQ的不是真的 [UMSocialQQHandler setQQWithAppId:@"XX" appKey:@"XX" url:@""]; // TODO UM统计 [MobClick startWithAppkey:@""]; [MobClick setCrashReportEnabled:NO]; NSLog(@"第三方服务注册完毕"); }); }@end
自动调用,完事!!!!