市场分享竞品分析
個人感覺目前做分享的SDK,最受歡迎的就是ShareSDK和友盟的,下面我們來對比下這2個SDK在集成過程中的一些區(qū)別:
對比ShareSDK和友盟
一.SDK大小
對比環(huán)境說明:
1.只集成社交平臺 新浪微博,微信,QQ
2.均不包含各自的UI庫,使用最簡單最基礎(chǔ)的接口實現(xiàn)分享
3.均在一個新建的干凈的Xcode項目中進行集成
對比數(shù)據(jù)說明
1.均使用LinkMap對項目進行統(tǒng)計,統(tǒng)計的是項目打包后所占的大小
2.表格中均統(tǒng)計各自必須要的庫大小(如果需要第三方庫,則也應(yīng)計算在內(nèi);不包含系統(tǒng)庫)
以下為統(tǒng)計友盟UM Share 的arm64結(jié)果的截圖:
二.集成復(fù)雜度
1)注冊,登錄,創(chuàng)建應(yīng)用獲取key,基本沒差別;
2)添加SDK,以及依賴庫;
i.可以使用cocoapods集成,無需添加依賴庫等配置
ii.手動集成SDK
2種方式基本沒有差別;
3)代碼配置
(1)設(shè)置AppKey,配置第三方平臺;
友盟:
ShareSDK
j[ShareSDK registerActivePlatforms:@[@(SSDKPlatformTypeSinaWeibo),@(SSDKPlatformTypeWechat),@(SSDKPlatformTypeQQ)]onImport:^(SSDKPlatformType platformType){switch (platformType){case SSDKPlatformTypeWechat:[ShareSDKConnector connectWeChat:[WXApi class]];break;case SSDKPlatformTypeQQ:[ShareSDKConnector connectQQ:[QQApiInterface class] tencentOAuthClass:[TencentOAuth class]];break;case SSDKPlatformTypeSinaWeibo:[ShareSDKConnector connectWeibo:[WeiboSDK class]];break;default:break;}}onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo){switch (platformType){case SSDKPlatformTypeSinaWeibo://設(shè)置新浪微博應(yīng)用信息,其中authType設(shè)置為使用SSO+Web形式授權(quán)[appInfo SSDKSetupSinaWeiboByAppKey:@"568898243"appSecret:@"38a4f8204cc784f81f9f0daaf31e02e3"redirectUri:@"http://www.sharesdk.cn"authType:SSDKAuthTypeBoth];break;case SSDKPlatformTypeWechat:[appInfo SSDKSetupWeChatByAppId:@"wx4868b35061f87885"appSecret:@"64020361b8ec4c99936c0e3999a9f249"];break;case SSDKPlatformTypeQQ:[appInfo SSDKSetupQQByAppId:@"100371282"appKey:@"aed9b0303e3ed1e27bae87c33761161d"authType:SSDKAuthTypeBoth];break; default:break;}}]``` 其次,友盟還需要在Appdelegate.m里增加這些回調(diào)處理的方法:// 支持所有iOS系統(tǒng)
-
(BOOL)application:(UIApplication )application openURL:(NSURL )url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
//6.3的新的API調(diào)用,是為了兼容國外平臺(例如:新版facebookSDK,VK等)的調(diào)用[如果用6.2的api調(diào)用會沒有回調(diào)],對國內(nèi)平臺沒有影響
BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url sourceApplication:sourceApplication annotation:annotation];if (!result) {
// 其他如支付等SDK的回調(diào)}
return result;
} -
(BOOL)application:(UIApplication )app openURL:(NSURL )url options:(NSDictionary *)options
// 其他如支付等SDK的回調(diào)
{
//6.3的新的API調(diào)用,是為了兼容國外平臺(例如:新版facebookSDK,VK等)的調(diào)用[如果用6.2的api調(diào)用會沒有回調(diào)],對國內(nèi)平臺沒有影響
BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url options:options];
if (!result) {}
return result;
}//支持目前所有iOS系統(tǒng) -
(BOOL)application:(UIApplication )application handleOpenURL:(NSURL )url
// 其他如支付等SDK的回調(diào)
{
BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url];
if (!result) {}
return result;
}`
但是ShareSDK并不需要加這些方法。
(2)實現(xiàn)分享
友盟:
//1、創(chuàng)建分享參數(shù)
NSMutableDictionary *shareParams = [NSMutableDictionary dictionary]; [shareParams SSDKSetupShareParamsByText:@"分享內(nèi)容"images:[[NSBundle mainBundle] pathForResource:@"COD13" ofType:@"jpg"]url:[NSURL URLWithString:@"http://mob.com"]title:@"分享標題"type:SSDKContentTypeAuto];//2、分享(可以彈出我們的分享菜單和編輯界面) [ShareSDK showShareActionSheet:nil //要顯示菜單的視圖, iPad版中此參數(shù)作為彈出菜單的參照視圖,只有傳這個才可以彈出我們的分享菜單,可以傳分享的按鈕對象或者自己創(chuàng)建小的view 對象,iPhone可以傳nil不會影響items:nilshareParams:shareParamsonShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {switch (state) {case SSDKResponseStateSuccess:{NSLog(@"分享成功");break;}case SSDKResponseStateFail:{NSLog(@"分享失敗~~%@",error.description);break;}default:break;}}];```總結(jié):
ShareSDK:方法多為block設(shè)置結(jié)構(gòu),代碼多但易于檢查,層次清晰;
友盟:方法設(shè)置比較分散,平臺多時不易查找問題,不過靈活多選;
個人感覺ShareSDK比友盟更好用,這不僅體現(xiàn)在代碼設(shè)計結(jié)構(gòu)上,另外ShareSDK也有更專業(yè)的技術(shù)服務(wù)!
4)設(shè)置URL Scheme以及白名單
如何設(shè)置QQ的URL Scheme?
友盟:
ShareSDK:
結(jié)論:這里可以看出ShareSDK開發(fā)文檔更加詳細,容易理解。
其他對比
以上就是個人的見解啊,親們覺得哪個更方便呢,歡迎發(fā)表意見哦!
總結(jié)
- 上一篇: centos部署openstack--网
- 下一篇: 公有/私有/保护继承、overload/