对比ShareSDK,友盟三方登录/三方分享
2016-07-06 16:52
666 查看
对比shareSDK和友盟
1.SDK大小对比:
集成平台 | 友盟 | shareSDK |
---|---|---|
微信,QQ,新浪微博 | 62.9M | 74M |
微信,QQ | 37.5M | 44.8M |
2.集成复杂度
登录,注册,创建应用获取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
结论::这里可以看出来shareSDK开发文档更加容易理解,详细友好
自定义分享内容
自定义分享内容,title,url,分享样式的设置对比:两者类似,且都可以自定义分享样式
友盟可以:分享多媒体资源:音乐,视频,GIF图片及自定义平台:
shareSDK:
其他对比
对比点 | 友盟 | shareSDK |
---|---|---|
安全 | √ | |
专业 | √ | |
sdk较小 | √ | |
文档简单 | √ | |
技术论坛 | √ |
三方登录
Sharesdk友盟
登录流程
1、用户触发第三方登录事件2、请求授权用户的资料(这个过程中可能涉及授权操作)
3、如果回调成功代入你应用的Login流程
4、否则错误进行错误处理
5、Login时客户端发送用户资料中的用户ID给服务端
6、服务端判定用户是已注册用户,则引导用户进入系统,否则返回特定错误码
Sharesdk
一、Sharesdk官网注册获取AppKey
二、下载SDK
三、添加依赖库,头文件(Swift需要桥接文件来加入头文件),根据文档做相关设置,如新浪需要Build Settings中的Other Linker Flags添加”-ObjC”
四、实现其他平台登录
1.首先申请各平台APP key,由于不同平台有不同的申请官网及工程配置,需要单独集成ShareSDK各社交平台申请APPkey 的网址及申请流程汇总
(QQ:腾讯平台需要上传手持身份证照片,完成注册后才可以创建应用;微信创建应用需要特定大小的应用icon,提交后7天内审核通过才有appkey;微博注册就会有appkey,secret,应用审核通过后才有授权)
2.代码注册,添加好需要的第三方登录按钮和对应的点击方法,方法中处理获取登录信息成功或失败的操作。
3.设置跳转客户端需要的配置:
(1)URL Scheme:target->info->url Types,注意不同平台格式不一定相同
(2) 配置info.plist同时加入白名单
info.plist <array> <string>sinaweibohd</string> <string>sinaweibo</string> <string>weibosdk</string> <string>weibosdk2.5</string> </array>
友盟
集成流程
一、注册友盟账号
登陆友盟官网,在我的产品页面添加新应用,即可获取到Appkey管理应用
二、到第三方平台申请账号,创建应用并提交审核
三、绑定第三方账号到友盟后台
四、下载SDK,配置工程
导入SDK适配iOS9
URL Scheme
URL Type
添加库:
framework(Security.framework,libiconv.dylib,SystemConfiguration.framework,CoreGraphics.Framework,libsqlite3.dylib,CoreTelephony.framework,libstdc++.dylib,libz.dylib)
五、代码实现点击登录方法,appID,appKey和url配置及Appdelegate中的URL回调方法。
友盟三方登录文档友盟三方登录分享流程博客
以qq为例集成三方登录
友盟常见问答:
友盟技术论坛三方分享
Sharesdk友盟
Sharesdk
Sharesdk文档一、Sharesdk官网注册获取AppKey,各个平台的key也要在各个平台申请
二、下载SDK添加到工程
三、添加依赖库
四、代码registerApp方法来初始化SDK并且初始化第三方平台,配置appKey,回调url
五、添加代码实现响应分享,设置title,images,url,分享文字等。
友盟
友盟集成文档集成流程:
一、下载安装SDK
二、添加依赖库
三、获取友盟Appkey,各个平台的key也要在各个平台申请
四、代码setAppKey方法来初始化SDK
五、配置第三方平台APPID及scheme,回调url,系统回调
六、配置URL scheme,url type,设置分享文本、图片,点击分享内容跳转链接,title等
各种分享问题及解决**注意:
1.防止多次引入库。如果在使用包含微信SDK的ShareSDK,同时还有其他三方包含微信SDK,例如:微信支付集成,要避免多次引入微信SDK而编译出错
2.注意顺序:在AppDelegate注册微信,需要先实现ShareSDK中微信的的注册方法**
封装友盟分享github
相关文章推荐
- Java中的arraycopy
- 黑马程序员_Java基础_我的day03学习笔记
- ubuntu14.04 pip从1.5.4 升级到8.x最新版
- git 常用命令
- 直播平台的高并发架构设计4-案例和总结
- 使用shiro框架,AuthorizationInfo方法没有被执行的问题
- 人生第一个shell脚本
- Maven项目构建报错
- jmeter 脚本增强(检查点、集合点)
- Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群
- 领土划分
- Mac上更新Ruby
- java回调函数
- java中list转数组操作
- cisco路由器密码恢复
- ibatis 批处理
- 循环神经网络(RNN, Recurrent Neural Networks)介绍
- U-Boot 的移植入门(2)——nand flash识别与操作
- C++虚函数和纯虚函数
- Linux保存修改vi指令