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