2026世界杯在哪_世界杯亚洲预选赛积分 - ifexchina.com

市场分享最新竞品分析

经市场调查,目前做分享的SDK,最受欢迎的就是ShareSDK和友盟的,下面我们来对比下这2个SDK在集成过程中的一些区别:

对比ShareSDK和友盟

一.SDK大小

对比环境说明:

只集成社交平台 新浪微博,微信,QQ,Facebook(微博,QQ,微信均使用精简版)

均不包含各自的UI库,使用最简单最基础的接口实现分享

均在一个新建的干净的Xcode项目中进行集成

对比数据说明

均使用LinkMap对项目进行统计,统计的是项目打包后所占的大小

表格中均统计各自必须要的库大小(如果需要第三方库,则也应计算在内;不包含系统库)

以下为统计友盟UM Share 的arm64结果的截图:

友盟UM Share

库

arm64

UMShare

394.15KB

UMCommon

273.92KB

libSocialWeChat.a

61.16KB

libSocialSina.a

86.48KB

libSocialQQ.a

65.58KB

FBSDKShareKit

556.99KB

FBSDKCoreKit

509.87KB

FBSDKLoginKit

119.08KB

libSocialFacebook.a

21.93KB

Bolts

86.52KB

总计

2175.68(2.12M)

ShareSDK

库

arm64

ShareSDK

238.02KB

MOBFoundation

594.77KB

SinaWeiboConnector

142.56KB

WechatConnector

93.50KB

QQConnector

65.15KB

FacebookConnector

112.62KB

ShareSDK.bundle(仅包含Sina,QQ,Wechat,Facebook三个平台的js)

45KB

总计

1291.62(1.26M)

二.集成复杂度

1)注册,登录,创建应用获取key,基本没差别;

2)添加SDK,以及依赖库;

i.可以使用cocoapods集成,无需添加依赖库等配置

ii.手动集成SDK

2种方式基本没有差别;

3)代码配置

(1)设置AppKey,配置第三方平台;

友盟:

//引入头文件

#import

#import

[UMConfigure initWithAppkey:@"5861e5daf5ade41326001eab" channel:@"App Store"];

[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:@"wxdc1e388c3822c80b" appSecret:@"3baf1193c85774b3fd9d18447d76cab0" redirectURL:@"http://mobile.umeng.com/social"];

[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:@"1105821097"/*设置QQ平台的appID*/ appSecret:nil redirectURL:@"http://mobile.umeng.com/social"];

[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_Sina appKey:@"3921700954" appSecret:@"04b48b094faeb16683c32669824ebdad" redirectURL:@"https://sns.whalecloud.com/sina2/callback"];

ShareSDK

94FB705E-B1E7-4264-89DB-DB5B7C2D49CB.png

//引入头文件

#import

[ShareSDK registPlatforms:^(SSDKRegister *platformsRegister) {

//QQ

[platformsRegister setupQQWithAppId:@"100371282" appkey:@"aed9b0303e3ed1e27bae87c33761161d"];

//微信

[platformsRegister setupWeChatWithAppId:@"wx617c77c82218ea2c" appSecret:@"c7253e5289986cf4c4c74d1ccc185fb1"];

//新浪

[platformsRegister setupSinaWeiboWithAppkey:@"568898243" appSecret:@"38a4f8204cc784f81f9f0daaf31e02e3" redirectUrl:@"http://www.sharesdk.cn"];

}];

其次,友盟还需要在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 *)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) {

// 其他如支付等SDK的回调

}

return result;

}

但是ShareSDK并不需要加这些方法。

(2)实现分享

友盟:

引入头文件

#import

- (void)umshare

{

//创建分享消息对象

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:UMSocialPlatformType_WechatSession 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:

//引入头文件

#import

#import

//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 share:SSDKPlatformTypeWechat parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {

switch (state) {

case SSDKResponseStateSuccess:

{

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享成功"

message:nil

delegate:nil

cancelButtonTitle:@"确定"

otherButtonTitles:nil];

[alertView show];

break;

}

case SSDKResponseStateFail:

{

NSLog(@"----%@",error.description);

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"---分享失败"

message:[NSString stringWithFormat:@"%@",error]

delegate:nil

cancelButtonTitle:@"OK"

otherButtonTitles:nil, nil];

[alert show];

break;

}

default:

break;

}

}];

总结:

ShareSDK:方法多为block设置结构,代码多但易于检查,层次清晰;

友盟:方法设置比较分散,平台多时不易查找问题,不过灵活多选;

个人感觉ShareSDK比友盟更好用,这不仅体现在代码设计结构上,另外ShareSDK也有更专业的技术服务!

4)设置URL Scheme以及白名单

如何设置QQ的URL Scheme?

友盟:

D4672FFE-76B1-47CA-807D-2DB3A89313AB.png

ShareSDK:

D6A81DD7-1E56-49EE-AEB6-967A270393D1.png

结论:这里可以看出ShareSDK开发文档更加详细,容易理解。

其他对比

对比点

友盟

ShareSDK

大小

1

技术服务

1

SDk更新频率

1

文档简单

1

技术论坛

1

以上就是个人的见解啊,亲们觉得哪个更方便呢,欢迎发表意见哦!