集成平台 | 友盟 | shareSDK |
---|---|---|
微信,QQ,新浪微博 | 62.9M | 74M |
微信,QQ | 37.5M | 44.8M |
结论:友盟SDK相对较小
登录,注册,创建应用获取key:
几乎没差别
添加sdk,链接库:
可以使用cocoapods集成,无需链接库等配置
手动集成SDK几乎没差别
代码配置
(1)设置AppKey,配置第三方平台:
友盟:
[UMSocialData setAppKey:UmengAppkey];
[UMSocialQQHandler setQQWithAppId:@"100424468"
appKey:@"c7394704798a158208a74ab60104f0ba"
url:@"http://www.umeng.com/social"];
shareSDK:
[ShareSDK registerApp: shareSDK Appkey
activePlatforms:@[@(SSDKPlatformTypeQQ)]
onImport:^(SSDKPlatformType platformType)
{
[ShareSDKConnector connectQQ:[QQApiInterface class]
tencentOAuthClass:[TencentOAuth class]];
}
onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo)
{
[appInfo SSDKSetupQQByAppId:@"100371282"
appKey:@"aed9b0303e3ed1e27bae87c33761161d"
authType:SSDKAuthTypeBoth];
}];
(2)实现分享:
友盟:
[UMSocialData defaultData].extConfig.title = @"分享的title";
[UMSocialData defaultData].extConfig.qqData.url = @"http://baidu.com";
[UMSocialSnsService presentSnsIconSheetView:self
appKey:@"507fcab25270157b37000010"
shareText:@"友盟社会化分享让您快速实现分享等社会化功能,http://umeng.com/social"
shareImage:[UIImage imageNamed:@"icon"]
shareToSnsNames:@[UMShareToWechatSession,UMShareToWechatTimeline,UMShareToSina,UMShareToQQ,UMShareToQzone]
delegate:self];
shareSDK:
创建分享参数:图片可以为数组,可以网络图片,分享可以设置:内容,图片,url,title
分享方法:
NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
[shareParams SSDKSetupShareParamsByText:@"分享内容"
images:imageArray
url:[NSURL URLWithString:@"http://mob.com"]
title:@"分享标题"
type:SSDKContentTypeAuto];
[ShareSDK showShareActionSheet:nil
//要显示菜单的视图,可以传分享的按钮对象或者自己创建小的view 对象,iPhone可以传nil不会影响
items:nil
shareParams:shareParams
onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
switch (state) {
case SSDKResponseStateSuccess: {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享成功"
message:nil
delegate:nil
cancelButtonTitle:@"确定"
otherButtonTitles:nil];
[alertView show];
break;
}
}
];}
总结:友盟的方法设置比较分散,例如可以忽略title,优点:更加灵活多选,方便自定义;缺点:较为分散,平台多时不易查找问题。shareSDK:方法多为block设置,代码多但易于检查,层次清晰
(3)系统回调:几乎没差别
(4)设置url Type :
如果设置qq url scheme
友盟:从集成文档跳转到qq文档,qq文档从注册到添加库一路向下,找到配置url Schemes
结论::这里可以看出来shareSDK开发文档更加容易理解,详细友好
友盟可以:分享多媒体资源:音乐,视频,GIF图片及自定义平台:
对比点 | 友盟 | shareSDK |
---|---|---|
安全 | √ | |
专业 | √ | |
sdk较小 | √ | |
文档简单 | √ | |
技术论坛 | √ |
1、用户触发第三方登录事件
2、请求授权用户的资料(这个过程中可能涉及授权操作)
3、如果回调成功代入你应用的Login流程
4、否则错误进行错误处理
5、Login时客户端发送用户资料中的用户ID给服务端
6、服务端判定用户是已注册用户,则引导用户进入系统,否则返回特定错误码
ShareSDK各社交平台申请APPkey 的网址及申请流程汇总
(QQ:腾讯平台需要上传手持身份证照片,完成注册后才可以创建应用;微信创建应用需要特定大小的应用icon,提交后7天内审核通过才有appkey;微博注册就会有appkey,secret,应用审核通过后才有授权)
(1)URL Scheme:target->info->url Types,注意不同平台格式不一定相同
(2) 配置info.plist同时加入白名单
info.plist
<array>
<string>sinaweibohdstring>
<string>sinaweibostring>
<string>weibosdkstring>
<string>weibosdk2.5string>
array>
登陆友盟官网,在我的产品页面添加新应用,即可获取到Appkey
管理应用
友盟技术论坛
Sharesdk文档
友盟集成文档
集成流程:
各种分享问题及解决
**注意:
1.防止多次引入库。如果在使用包含微信SDK的ShareSDK,同时还有其他三方包含微信SDK,例如:微信支付集成,要避免多次引入微信SDK而编译出错
2.注意顺序:在AppDelegate注册微信,需要先实现ShareSDK中微信的的注册方法**
封装友盟分享github