市场分享竞品分析
2018-02-25 11:23
267 查看
市场分享竞品分析
个人感觉目前做分享的SDK,最受欢迎的就是ShareSDK和友盟的,下面我们来对比下这2个SDK在集成过程中的一些区别:对比ShareSDK和友盟
一.SDK大小
[b]对比环境说明:[/b]1. 只集成社交平台 新浪微博,微信,QQ2. 均不包含各自的UI库,使用最简单最基础的接口实现分享
3. 均在一个新建的干净的Xcode项目中进行集成
[b]对比数据说明[/b]1. 均使用LinkMap对项目进行统计,统计的是项目打包后所占的大小
2. 表格中均统计各自必须要的库大小(如果需要第三方库,则也应计算在内;不包含系统库)
以下为统计友盟UM Share 的arm64结果的截图:
[b]友盟UM Share[/b]
库 | arm64 |
UMSocialCore | 318.54KB |
UMSocialNetwork | 37.38KB |
libUMSocialCloudShare.a | 45.50KB |
libSocialWeChat.a | 58.09KB |
libSocialSina.a | 77.89KB |
libSocialQQ.a | 59.87KB |
总计 | 597.27KB(0.58M) |
库 | arm64 |
ShareSDK | 350.56KB |
MOBFoundation | 452.62KB |
ShareSDKConnector | 14.14KB |
ShareSDK.bundle(仅包含Sina,QQ,Wechat三个平台的js) | 72KB |
总计 | 889.32KB(0.87M) |
二.集成复杂度
[b]1)注册,登录,创建应用获取key,基本没差别;[/b][b]2)添加SDK,以及依赖库;[/b]i.可以使用cocoapods集成,无需添加依赖库等配置ii.手动集成SDK
2种方式基本没有差别;
[b]3)代码配置[/b][b](1)设置AppKey,配置第三方平台;[/b]友盟:
[[UMSocialManager defaultManager] setUmSocialAppkey:@"5861e5daf5ade41326001eab"]; [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:@"wxdc1e388c3822c80b" appSecret:@"3baf1193c85774b3fd9d18447d76cab0" redirectURL:nil]; [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:@"1105821097"/*设置QQ平台的appID*/ appSecret:nil redirectURL:nil]; [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_Sina appKey:@"3921700954" appSecret:@"04b48b094faeb16683c32669824ebdad" redirectURL:@"https://sns.whalecloud.com/sina2/callback"];[b]ShareSDK[/b]
[ShareSDK registerActivePlatforms:@[
@(SSDKPlatformTypeSinaWeibo),
@(SSDKPlatformTypeWechat),
@(SSDKPlatformTypeQQ)]
onImport:^(SSDKPlatformType platformType)
{
switch (platformType)
{
case SSDKPlatformTypeWechat:
[ShareSDKConnector connectWeChat:[WXApi class]];
break;
case SSDKPlatformTypeQQ:
[ShareSDKConnector connectQQ:[QQApiInterface class] tencentOAuthClass:[TencentOAuth class]];
break;
case SSDKPlatformTypeSinaWeibo:
[ShareSDKConnector connectWeibo:[WeiboSDK class]];
break;
default:
break;
}
}
onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo)
{
switch (platformType)
{
case SSDKPlatformTypeSinaWeibo:
//设置新浪微博应用信息,其中authType设置为使用SSO+Web形式授权
[appInfo SSDKSetupSinaWeiboByAppKey:@"568898243"
appSecret:@"38a4f8204cc784f81f9f0daaf31e02e3"
redirectUri:@"http://www.sharesdk.cn"
authType:SSDKAuthTypeBoth];
break;
case SSDKPlatformTypeWechat:
[appInfo SSDKSetupWeChatByAppId:@"wx4868b35061f87885"
appSecret:@"64020361b8ec4c99936c0e3999a9f249"];
break;
case SSDKPlatformTypeQQ:
[appInfo SSDKSetupQQByAppId:@"100371282"
appKey:@"aed9b0303e3ed1e27bae87c33761161d"
authType:SSDKAuthTypeBoth];
break; default:
break;
}
}]其次,友盟还需要在Appdelegate.m里增加这些回调处理的方法:// 支持所有iOS系统
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
//6.3的新的API调用,是为了兼容国外平台(例如:新版facebookSDK,VK等)的调用[如果用6.2的api调用会没有回调],对国内平台没有影响
BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url sourceApplication:sourceApplication annotation:annotation];
if (!result) {
// 其他如支付等SDK的回调
}
return result;
}
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options
{
//6.3的新的API调用,是为了兼容国外平台(例如:新版facebookSDK,VK等)的调用[如果用6.2的api调用会没有回调],对国内平台没有影响
BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url options:options];
if (!result) {
// 其他如支付等SDK的回调
}
return result;
}//支持目前所有iOS系统
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url];
if (!result) {
// 其他如支
b709
付等SDK的回调
}
return result;
}但是ShareSDK并不需要加这些方法。
[b](2)实现分享[/b]友盟:- (void)umshare
{
[UMSocialUIManager showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformType platformType, NSDictionary *userInfo) {
// 根据platformType调用相关平台进行分享
if (platformType == UMSocialPlatformType_WechatSession) {
[self shareWebPageToPlatformType:UMSocialPlatformType_WechatSession];
} else if(platformType == UMSocialPlatformType_QQ)
{
[self shareWebPageToPlatformType:UMSocialPlatformType_QQ];
}
else if(platformType == UMSocialPlatformType_Sina)
{
[self shareWebPageToPlatformType:UMSocialPlatformType_Sina];
}
}];
}
- (void)shareWebPageToPlatformType:(UMSocialPlatformType)platformType
{
//创建分享消息对象
UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
//创建网页内容对象
NSString* thumbURL = @"https://mobile.umeng.com/images/pic/home/social/img-1.png";
// NSString *imgPath = [[NSBundle mainBundle] pathForResource:@"D11" ofType:@"jpg"];
// NSData * path =[NSData dataWithContentsOfFile:imgPath];
UMShareWebpageObject *shareObject = [UMShareWebpageObject shareObjectWithTitle:@"欢迎使用【友盟+】社会化组件U-Share" descr:@"欢迎使用【友盟+】社会化组件U-Share,SDK包最小,集成成本最低,助力您的产品开发、运营与推广!" thumImage:thumbURL];
//设置网页地址
shareObject.webpageUrl = @"http://mobile.umeng.com/social";
//分享消息对象设置分享内容对象
messageObject.shareObject = shareObject;
//调用分享接口
[[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {
if (error) {
NSLog(@"************Share fail with error %@*********",error);
}else{
NSLog(@"response data is %@",data);
NSLog(@"分享成功");
}
}];
}ShareSDK://1、创建分享参数
NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
[shareParams SSDKSetupShareParamsByText:@"分享内容"
images:[[NSBundle mainBundle] pathForResource:@"COD13" ofType:@"jpg"]
url:[NSURL URLWithString:@"http://mob.com"]
title:@"分享标题"
type:SSDKContentTypeAuto];
//2、分享(可以弹出我们的分享菜单和编辑界面)
[ShareSDK showShareActionSheet:nil //要显示菜单的视图, iPad版中此参数作为弹出菜单的参照视图,只有传这个才可以弹出我们的分享菜单,可以传分享的按钮对象或者自己创建小的view 对象,iPhone可以传nil不会影响
items:nil
shareParams:shareParams
onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
switch (state) {
case SSDKResponseStateSuccess:
{
NSLog(@"分享成功");
break;
}
case SSDKResponseStateFail:
{
NSLog(@"分享失败~~%@",error.description);
break;
}
default:
break;
}
}
];
总结:
ShareSDK:方法多为block设置结构,代码多但易于检查,层次清晰;友盟:方法设置比较分散,平台多时不易查找问题,不过灵活多选;
个人感觉ShareSDK比友盟更好用,这不仅体现在代码设计结构上,另外ShareSDK也有更专业的技术服务!
[b]4)设置URL Scheme以及白名单[/b]如何设置QQ的URL Scheme?
友盟:
ShareSDK:
结论:这里可以看出ShareSDK开发文档更加详细,容易理解。
其他对比
对比点 | 友盟 | ShareSDK |
大小 | 1 | |
技术服务 | | 1 |
SDk更新频率 | | 1 |
文档简单 | | 1 |
技术论坛 | | 1 |
相关文章推荐
- 市场分享竞品分析-Android
- 市场分享竞品分析
- 市场分享竞品分析-Android
- 分享 APP竞品分析的几个工具
- 产品经理做竞品分析的方法论(分享个人笔记)
- 聊聊竞品分析这件事
- 老李分享:apache日志分析及系统cpu,内存,负载情况监控
- python分析apache访问日志脚本分享
- asterisk chan_sip.c代码分析 分享
- 高清摄像机的发展历程及市场现状分析
- 主流币底背离.近期将接受市场考验/8月13日比特币及其他币种行情分析
- c语言选择结构作业题练习分享(附答案、考点、难度、分析)
- 内存泄漏分析及常用内存泄漏检测工具分享
- 分享下今天研究的流量上限DDos攻击分析和解决方案
- 关于 Python 数据抓取、分析、挖掘、机器学习和Python 分布式计算内容分享
- 竞品分析数据采集方法
- 分析称百度市场地位强劲前景看好
- 谷歌分析工具是怎样毁了市场营销的?