对比ShareSDK,友盟三方登录/三方分享

对比shareSDK和友盟

1.SDK大小对比:

集成平台 友盟 shareSDK
微信,QQ,新浪微博 62.9M 74M
微信,QQ 37.5M 44.8M

结论:友盟SDK相对较小

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,友盟三方登录/三方分享_第1张图片

shareSDK
对比ShareSDK,友盟三方登录/三方分享_第2张图片

结论::这里可以看出来shareSDK开发文档更加容易理解,详细友好

  • 自定义分享内容
    自定义分享内容,title,url,分享样式的设置对比:两者类似,且都可以自定义分享样式

友盟可以:分享多媒体资源:音乐,视频,GIF图片及自定义平台:

shareSDK:
对比ShareSDK,友盟三方登录/三方分享_第3张图片

  • 其他对比
对比点 友盟 shareSDK
安全
专业
sdk较小
文档简单
技术论坛

三方登录

  • Sharesdk
  • 友盟

登录流程

  • 1、用户触发第三方登录事件

  • 2、请求授权用户的资料(这个过程中可能涉及授权操作)

  • 3、如果回调成功代入你应用的Login流程

  • 4、否则错误进行错误处理

  • 5、Login时客户端发送用户资料中的用户ID给服务端

  • 6、服务端判定用户是已注册用户,则引导用户进入系统,否则返回特定错误码

Sharesdk

一、Sharesdk官网注册获取AppKey

对比ShareSDK,友盟三方登录/三方分享_第4张图片

二、下载SDK

三、添加依赖库,头文件(Swift需要桥接文件来加入头文件),根据文档做相关设置,如新浪需要Build Settings中的Other Linker Flags添加”-ObjC”

对比ShareSDK,友盟三方登录/三方分享_第5张图片

四、实现其他平台登录

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>sinaweibohdstring>
  <string>sinaweibostring>
  <string>weibosdkstring>
  <string>weibosdk2.5string>
 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

你可能感兴趣的:(iOS)