1. 程式人生 > >對比ShareSDK,友盟三方登入/三方分享

對比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
這裡寫圖片描述

結論::這裡可以看出來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,由於不同平臺有不同的申請官網及工程配置,需要單獨整合

(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
  • 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回撥方法。

友盟常見問答:

三方分享

  • 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中微信的的註冊方法**