由于近期工作需要自己抽時間搞了一下第三方分享,這里使用的是shareSDK的第三方,在使用的過程中有一些心得和體會,特在此和大家分享一下~
一、獲取App Key
首先,您需要登錄shareSDK 的官方網(wǎng)站登錄或者注冊一個賬戶,注冊成功后可以選擇進入服務(wù)器的后臺
廢話不多說,直接上圖!
這里演示的是我已經(jīng)創(chuàng)建好的實例APP,如果第一次創(chuàng)建直接添加即可.
點擊左側(cè)列表最下邊的應(yīng)用信息,可以顯示你需要添加分享的APP(注意這里的項目一定是要在AppStore上線的),其中App Key 和 App Secret是在創(chuàng)建應(yīng)用時SharrSDK自動生成的,接下來的應(yīng)用名稱,簡介,和應(yīng)用分類按自己的需求填寫就行,這里不多做介紹了.
下面介紹一下第二欄,IOS相關(guān)信息,這里很重要,其中1,2,5是必填的,2,4填一個就行,3為選填(Optional),第一點Bundle ID 不用多說了吧,直接從你的項目里獲取就行(需要注意的是一定要填你上線APP的切忌不要填測試版的),第二點iPhone Store ID(即開發(fā)者中心的 APP ID) 可以從蘋果開發(fā)中心獲取,蘋果開發(fā)平臺會為每個成功上線項目生成一個獨有的APP ID,第三點選填,這里不做介紹,第四點如果你的項目有Pad版本的,這里就需要填寫了,獲取方法和第二點類似.
圖標(biāo),沒什么說的,上傳你應(yīng)用圖片即可,這里對圖標(biāo)尺寸的大小ShareSDK 并沒有明確的規(guī)定,但個人覺得清晰就好,哈哈~
二、下載SDK
SDK分為簡潔版和標(biāo)準(zhǔn)版,這里講解的是簡潔版,標(biāo)準(zhǔn)版的話,個人感覺和簡潔版沒什么區(qū)別哈哈
下載ShareSDK 包下載后解壓壓縮包如圖所示:
文件夾libraries就是分享所需要的SDK了(使用時直接將這個文件夾拖入工程),其目錄下又有相關(guān)SDK和文件夾extends,這里對其做一下簡單介紹其中extends文件夾下是你想要使用分享的社交軟件相應(yīng)SDK(比如:微博,QQ,微信等)剩下得SDK是shareSDK公司集成的相關(guān)SDK,功能介紹如下:
- extends:第三方平臺SDK。(不需要的平臺的SDK可直接移除)
- 2.MOBFoundation.framework:基礎(chǔ)功能框架。(必要)
- 3.ShareSDK.bundle:ShareSDK資源文件。(必要)
- 4.ShareSDK.framework:核心靜態(tài)庫。(必要)
- 5.ShareSDKConnector.framework:用于ShareSDK框架與外部框架連接 的代理框架插件。使用第三方SDK時必要。
- 6.ShareSDKExtension.framework:對ShareSDK功能的擴展框架插件。目前主要提供第三方平臺登錄、一鍵分享、截屏分享、搖一搖分享等相關(guān)功能。需要使用以上功能時必要。
- 7.ShareSDKInterfaceAdapter.framework:ShareSDK v2.x對簡潔版的接口兼容包。(建議直接使用簡潔版接口,盡量不使用這個兼容包)
- 8.ShareSDKUI.bundle:分享菜單欄和分享編輯頁面資源包。(如果自定義這些UI可直接移除)
- 9.ShareSDKUI.framework:分享菜單欄和分享編輯頁面。(如果自定義這些UI可直接移除)
三、快速集成
第一步:將libraries 文件拖入你的工程目錄:
注意:請務(wù)必在上述步驟中選擇“Create groups for any added folders”單選按鈕組。如果你選擇“Create folder references for any added folders”,一個藍色的文件夾引用將被添加到項目并且將無法找到它的資源。
第二步:添加依賴庫 添加步驟見下圖:
必須添加的依賴庫如下(Xcode 7 下 .dylib庫后綴名更改為.tbd):
- 1.libicucore.dylib
- 2.libz.dylib
- 3.libstdc++.dylib
- 4.JavaScriptCore.framework
以下依賴庫根據(jù)社交平臺添加:
新浪微博SDK依賴庫
- 1.ImageIO.framework
- 2.AdSupport.framework
- 3.libsqlite3.dylib
QQ好友和QQ空間SDK依賴庫
- 1.libsqlite3.dylib
- 2.微信SDK依賴庫
- 3.libsqlite3.dylib
短信和郵件需要依賴庫
- 1.MessageUI.framework
Google+SDK依賴庫
- 1.CoreMotion.framework
- 2.CoreLocation.framework
- 3.MediaPlayer.framework
- 4.AssetsLibrary.framework
- 5.AddressBook.framework
第三步:設(shè)置ShareSDK的Appkey并初始化對應(yīng)的第三方社交平臺 打開AppDelegate.m(代表你的工程名字)導(dǎo)入頭文件
#import <ShareSDK/ShareSDK.h>
#import <ShareSDKConnector/ShareSDKConnector.h>
//騰訊開放平臺(對應(yīng)QQ和QQ空間)SDK頭文件
#import <TencentOpenAPI/TencentOAuth.h>
#import <TencentOpenAPI/QQApiInterface.h>
//微信SDK頭文件
#import "WXApi.h"
//新浪微博SDK頭文件
#import "WeiboSDK.h"
//新浪微博SDK需要在項目Build Settings中的Other Linker Flags添加"-ObjC"
//人人SDK頭文件
#import <RennSDK/RennSDK.h>
//GooglePlus SDK頭文件
#import <GooglePlus/GooglePlus.h>
//GooglePlus SDK需要在項目Build Settings中的Other Linker Flags添加"-ObjC"
在- (BOOL)application: didFinishLaunchingWithOptions:方法中調(diào)用registerApp方法來初始化SDK并且初始化第三方平臺
- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions: (NSDictionary )launchOptions
{
/
* 設(shè)置ShareSDK的appKey,如果尚未在ShareSDK官網(wǎng)注冊過App,請移步到http://mob.com/login 登錄后臺進行應(yīng)用注冊,
* 在將生成的AppKey傳入到此方法中。
* 方法中的第二個第三個參數(shù)為需要連接社交平臺SDK時觸發(fā),
* 在此事件中寫入連接代碼。第四個參數(shù)則為配置本地社交平臺時觸發(fā),根據(jù)返回的平臺類型來配置平臺信息。
* 如果您使用的時服務(wù)端托管平臺信息時,第二、四項參數(shù)可以傳入nil,第三項參數(shù)則根據(jù)服務(wù)端托管平臺來決定要連接的社交SDK。
*/
[ShareSDK registerApp:@"iosv1101"`
activePlatforms:@[
@(SSDKPlatformTypeSinaWeibo),
@(SSDKPlatformTypeMail),
@(SSDKPlatformTypeSMS),
@(SSDKPlatformTypeCopy),
@(SSDKPlatformTypeWechat),
@(SSDKPlatformTypeQQ),
@(SSDKPlatformTypeRenren),
@(SSDKPlatformTypeGooglePlus)]
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;
case SSDKPlatformTypeRenren:
[ShareSDKConnector connectRenren:[RennClient class]];
break;
case SSDKPlatformTypeGooglePlus:
[ShareSDKConnector connectGooglePlus:[GPPSignIn class]
shareClass:[GPPShare 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;
case SSDKPlatformTypeRenren:
[appInfo SSDKSetupRenRenByAppId:@"226427"
appKey:@"fc5b8aed373c4c27a05b712acba0f8c3"
secretKey:@"f29df781abdd4f49beca5a2194676ca4"
authType:SSDKAuthTypeBoth];
break;
case SSDKPlatformTypeGooglePlus:
[appInfo SSDKSetupGooglePlusByClientID:@"232554794995.apps.googleusercontent.com"
clientSecret:@"PEdFgtrMw97aCvf0joQj7EMk"
redirectUri:@"http://localhost"
authType:SSDKAuthTypeBoth];
break;
default:
break;
}
}];
return YES;
}
(注意:每一個case對應(yīng)一個break不要忘記填寫,不然很可能有不必要的錯誤,新浪微博的外部庫如果不要客戶端分享或者不需要加關(guān)注微博的功能可以不添加,否則要添加,QQ,微信,google+這些外部庫文件必須要加)
第四步:添加實現(xiàn)代碼 打開需要集成分享功能的視圖源碼,把如下代碼復(fù)制并粘貼到你要分享的位置,例如到響應(yīng)分享按鈕的方法中。并且修改相應(yīng)的參數(shù)即可。
1.需要在分享的試圖中導(dǎo)入的頭文件
#import <ShareSDK/ShareSDK.h>
#import <ShareSDKUI/ShareSDK+SSUI.h>
2.調(diào)用構(gòu)造分享參數(shù)接口和分享的接口
//1、創(chuàng)建分享參數(shù)
NSArray* imageArray = @[[UIImage imageNamed:@"shareImg.png"]];
(注意:圖片必須要在Xcode左邊目錄里面,名稱必須要傳正確,如果要分享網(wǎng)絡(luò)圖片,可以這樣傳iamge參數(shù) images:@[@"http://mob.com/Assets/images/logo.png?v=20150320"])
if (imageArray) {
NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
[shareParams SSDKSetupShareParamsByText:@"分享內(nèi)容"
images:imageArray
url:[NSURL URLWithString:@"http://mob.com"]
title:@"分享標(biāo)題"
type:SSDKContentTypeAuto];
//2、分享(可以彈出我們的分享菜單和編輯界面)
[ShareSDK showShareActionSheet:nil //要顯示菜單的視圖, iPad版中此參數(shù)作為彈出菜單的參照視圖,只有傳這個才可以彈出我們的分享菜單,可以傳分享的按鈕對象或者自己創(chuàng)建小的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;
}
case SSDKResponseStateFail:
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"分享失敗"
message:[NSString stringWithFormat:@"%@",error]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil, nil];
[alert show];
break;
}
default:
break;
}
}
];}
編譯并運行后,點擊分享按鈕就成功發(fā)送到社交平臺的話說明你已經(jīng)基本集成成功了。但是,為了使您的用戶有更好的分享體驗,以及您的應(yīng)用有更多的分享量,更好地在社交平臺上傳播,我們建議您參考“進階功能”的指引進行SSO(免登錄)和更多社交平臺的設(shè)置。
下面是SSO設(shè)置
可選:支持微信所需的相關(guān)配置及代碼 在微信開放平臺(http://open.weixin.qq.com/ )注冊應(yīng)用并取得應(yīng)用的AppID,然后打開下圖位置,在URL Types中添加微信AppID
打開AppDelegate.m(代表你的工程名字)文件,導(dǎo)入微信SDK的頭文件并增加微信的外部庫接口
#import <ShareSDKConnector/ShareSDKConnector.h>
//微信SDK頭文件
#import "WXApi.h"
//初始化的import參數(shù)注意要鏈接原生微信SDK。
case SSDKPlatformTypeWechat:
[ShareSDKConnector connectWeChat:[WXApi class]];
break;
可選:支持QQ所需的相關(guān)配置及代碼 登錄QQ互聯(lián)(http://connect.qq.com/ )注冊成為開發(fā)者并登記應(yīng)用取得AppId,然后打開下圖位置,在URL Types中添加QQ的AppID,其格式為:”QQ” + AppId的16進制(如果appId轉(zhuǎn)換的16進制數(shù)不夠8位則在前面補0,如轉(zhuǎn)換的是:5FB8B52,則最終填入為:QQ05FB8B52 注意:轉(zhuǎn)換后的字母要大寫) 轉(zhuǎn)換16進制的方法:echo ‘ibase=10;obase=16;801312852′|bc,其中801312852為QQ的AppID,見下圖
QQ的有些小蛋疼,因為要轉(zhuǎn)十六進制碼,如果覺得上面的命令行轉(zhuǎn)碼比較麻煩的話,還可以使用網(wǎng)上的在線轉(zhuǎn)碼,這里給出開源中國的在線轉(zhuǎn)碼,呵呵,秒轉(zhuǎn)!
轉(zhuǎn)碼完成后,需要在十六進制碼的前面加上QQ的前綴,以及將十六進制碼的字母大寫,一定要大寫,切記切記!
然后打開工程中的AppDelegate.m(代表你的工程名字)文件,導(dǎo)入QQSDK的頭文件并增加QQ的外部庫文件接口:
#import <ShareSDK/ShareSDK.h>
#import <ShareSDKConnector/ShareSDKConnector.h>
//騰訊開放平臺(對應(yīng)QQ和QQ空間)SDK頭文件
#import <TencentOpenAPI/TencentOAuth.h>
#import <TencentOpenAPI/QQApiInterface.h>
//初始化的import參數(shù)注意要鏈接原生QQSDK。
case SSDKPlatformTypeQQ:
[ShareSDKConnector connectQQ:[QQApiInterface class] tencentOAuthClass:[TencentOAuth class]];
break;
可選:配置新浪微博、Facebook的SSO 登錄新浪微博和facebook的開放平臺,獲取AppID 。新浪微博的url scheme的設(shè)置格式為wb+AppID,facebook的設(shè)置格式為fb+AppID。具體參考下圖:
附:目前的新浪微博SDK需要在項目的Build Settings中的Other Linker Flags添加”-ObjC”,如果不配置有可能會崩潰。步驟如下:
當(dāng)新浪微博需要客戶端分享或者增加關(guān)注微博的功能,需要打開工程中的AppDelegate.m(代表你的工程名字)文件,導(dǎo)入新浪微博SDK的頭文件并增加新浪微博的外部庫文件接口:
#import <ShareSDK/ShareSDK.h>
#import <ShareSDKConnector/ShareSDKConnector.h>
//新浪微博SDK頭文件
#import "WeiboSDK.h"
//初始化的import參數(shù)注意要鏈接原生新浪微博SDK。
case SSDKPlatformTypeSinaWeibo:
[ShareSDKConnector connectWeibo:[WeiboSDK class]];
break;
詳情可參考:shareSDK官方文檔
四、iOS9如何適配
1、大部分社交平臺接口不支持https協(xié)議
作為開發(fā)者大家想必都知道蘋果在iOS9發(fā)布后,將http協(xié)議升級為https安全協(xié)議。因此在iOS9下,系統(tǒng)默認會攔截對http協(xié)議接口的訪問,因此無法獲取http協(xié)議接口的數(shù)據(jù)。而對ShareSDK來說,具體表現(xiàn)可能是,無法授權(quán)、分享、獲取用戶信息等。
那么該如何解決呢?這里提供一個簡單暴力的方法——暫時退回到http協(xié)議
具體方法:
在項目的info.plist中添加一個Key:NSAppTransportSecurity,類型為字典類型。
然后給它添加一個Key:NSAllowsArbitraryLoads,類型為Boolean類型,值為YES;
2、大部分社交平臺SDK不支持bitcode
iOS 9新建項目默認需要支持bitcode,而不支持bitcode的SDK會導(dǎo)致無法編譯運行。
解決方案:
(1)、暫時關(guān)閉對bitcode的支持(建議),方法如下圖
(2)、移除不支持bitcode的平臺SDK。
在iOS 9下涉及到平臺客戶端跳轉(zhuǎn),系統(tǒng)會自動到項目info.plist下檢測是否設(shè)置平臺Scheme。對于需要配置的平臺,如果沒有配置,就無法正常跳轉(zhuǎn)平臺客戶端。因此要支持客戶端的分享和授權(quán)等,需要配置Scheme名單。
具體方法:
1)、在項目的info.plist中添加一LSApplicationQueriesSchemes,類型為Array。
2)、然后給它添加一個需要支持的項目,類型為字符串類型;
各平臺詳細URL請看:詳細URL
必看注意
1.在iOS9中,如果沒有添加上述白名單,系統(tǒng)會打印類似如下提示:
.-canOpenURL: failed for URL: “sinaweibohdsso://xxx” – error: “This app is not allowed to query for scheme sinaweibohdsso”(如下圖)
如沒有添加相關(guān)白名單,有可能導(dǎo)致分享失敗,例如不會跳轉(zhuǎn)微信,不會跳轉(zhuǎn)QQ等。
2.添加完上述所需的名單,系統(tǒng)依然會打印類似信息:
.-canOpenURL: failed for URL: “sinaweibohdsso://xxx” – error: “null”
這是系統(tǒng)打印的信息,目前是無法阻止其打印,即無法消除的
3.上述白名單,是技術(shù)人員通過不斷的測試收集整理所得,如果各位開發(fā)者朋友發(fā)現(xiàn)上表格有所遺漏,請根據(jù)系統(tǒng)信息添加相關(guān)白名單即可。
五、其他問題
1、自定義分享圖標(biāo)
如果你嫌棄shareSDK自帶的圖標(biāo)想換成自己的美美噠圖標(biāo)的話,你需要替換shareSDK的集成包,目錄如下
這里圖標(biāo)名稱是固定的: sns_icon_xx@2x.png
如果你想修改圖標(biāo),把你的定制的圖標(biāo)講此文件下對應(yīng)的圖標(biāo)替換即可,注意要先刪除shareSDK自帶的再倒入,不然導(dǎo)不進去
替換完成效果:
2、修改分享平臺名稱
shareSDK 自帶的分享平臺名稱默認是英文的,如果想漢化的話,執(zhí)行操作如下:
如果漢化的名稱還不滿意,比如:QQ改成QQ好友分享,那你需要修改shareSDK的漢化包
3、去掉朋友圈收藏、QQ空間
如果你的項目需求并沒有要求QQ空間分享,和微信朋友圈收藏,但shareSDK 自帶的有,想去掉怎么辦?
QQ和微信默認的SDK都導(dǎo)入的是主平臺,而主平臺自帶QQ空間(朋友圈收藏),要想去掉的話我們只能將主平臺替換為響應(yīng)的子平臺:
[ShareSDK registerApp:@"XXXXXXX"
activePlatforms:@[
// 不要使用微信總平臺進行初始化
//@(SSDKPlatformTypeWechat),
// 使用微信子平臺進行初始化,即可
@(SSDKPlatformSubTypeWechatSession),
@(SSDKPlatformSubTypeWechatTimeline),
//不要使用QQ總平臺進行初始化
//@(SSDKPlatformTypeQQ),
//使用QQ子平臺進行初始化
@(SSDKPlatformSubTypeQQFriend)]
]
onImport:^(SSDKPlatformType platformType) {
switch (platformType)
{
case SSDKPlatformTypeWechat:
[ShareSDKConnector connectWeChat:[WXApi class]];
break;
default:
break;
}
}
onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo) {
switch (platformType)
{
case SSDKPlatformTypeWechat:
[appInfo SSDKSetupWeChatByAppId:@"wx4868b35061f87885"
appSecret:@"64020361b8ec4c99936c0e3999a9f249"];
break;
case SSDKPlatformTypeQQ:
[appInfo SSDKSetupQQByAppId:@"100371282"
appKey:@"aed9b0303e3ed1e27bae87c33761161d"
authType:SSDKAuthTypeBoth];
break;
default:
break;
}
}];
4、跳過分享的編輯界面
設(shè)置彈出分享菜單,直接點擊菜單中的平臺分享(跳過分享的編輯界面)。
//先構(gòu)造分享參數(shù):
NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
[shareParams SSDKSetupShareParamsByText:@"分享內(nèi)容"
images:@[[UIImage imageNamed:@"shareImg.png"]]
url:[NSURL URLWithString:@"http://mob.com"]
title:@"分享標(biāo)題"
type:SSDKContentTypeAuto];
//調(diào)用分享的方法
SSUIShareActionSheetController *sheet = [ShareSDK showShareActionSheet:view
items:nil
shareParams:shareParams
onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
switch (state) {
case SSDKResponseStateSuccess:
NSLog(@"分享成功!");
break;
case SSDKResponseStateFail:
NSLog(@"分享失敗%@",error);
break;
case SSDKResponseStateCancel:
NSLog(@"分享已取消");
break;
default:
break;
}
}];
//刪除和添加平臺示例
[sheet.directSharePlatforms removeObject:@(SSDKPlatformTypeWechat)];(默認微信,QQ,QQ空間都是直接跳客戶端分享,加了這個方法之后,可以跳分享編輯界面分享)
[sheet.directSharePlatforms addObject:@(SSDKPlatformTypeSinaWeibo)];(加了這個方法之后可以不跳分享編輯界面,直接點擊分享菜單里的選項,直接分享)
5、自定義分享菜單欄樣式
如何自定義分享菜單呢?你可以這樣:
// 彈出分享菜單需要導(dǎo)入的頭文件
#import <ShareSDKUI/ShareSDK+SSUI.h>
// 自定義分享菜單欄需要導(dǎo)入的頭文件
#import <ShareSDKUI/SSUIShareActionSheetStyle.h>
//1、創(chuàng)建分享參數(shù)(必要)
NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
NSArray* imageArray = @[[UIImage imageNamed:@"圖片名.png"]];
(注意:圖片必須要在Xcode左邊目錄里面,名稱必須要傳正確,如果要分享網(wǎng)絡(luò)圖片,可以這樣傳iamge參數(shù) images:@[@"http://mob.com/Assets/images/logo.png?v=20150320"])
[shareParams SSDKSetupShareParamsByText:@"分享內(nèi)容"
images:imageArray
url:[NSURL URLWithString:@"http://mob.com"]
title:@"分享標(biāo)題"
type:SSDKContentTypeAuto];
// 設(shè)置分享菜單欄樣式(非必要)
// 設(shè)置分享菜單的背景顏色
[SSUIShareActionSheetStyle setActionSheetBackgroundColor:[UIColor colorWithRed:249/255.0 green:0/255.0 blue:12/255.0 alpha:0.5]];
// 設(shè)置分享菜單顏色
[SSUIShareActionSheetStyle setActionSheetColor:[UIColor colorWithRed:21.0/255.0 green:21.0/255.0 blue:21.0/255.0 alpha:1.0]];
// 設(shè)置分享菜單-取消按鈕背景顏色
[SSUIShareActionSheetStyle setCancelButtonBackgroundColor:[UIColor colorWithRed:21.0/255.0 green:21.0/255.0 blue:21.0/255.0 alpha:1.0]];
// 設(shè)置分享菜單-取消按鈕的文本顏色
[SSUIShareActionSheetStyle setCancelButtonLabelColor:[UIColor blackColor]];
// 設(shè)置分享菜單-社交平臺文本顏色
[SSUIShareActionSheetStyle setItemNameColor:[UIColor whiteColor]];
// 設(shè)置分享菜單-社交平臺文本字體
[SSUIShareActionSheetStyle setItemNameFont:[UIFont systemFontOfSize:10]];
//設(shè)置分享編輯界面的導(dǎo)航欄顏色
[SSUIEditorViewStyle setiPhoneNavigationBarBackgroundColor:[UIColor blackColor]];
//設(shè)置編輯界面標(biāo)題顏色
[SSUIEditorViewStyle setTitleColor:[UIColor redColor]];
//設(shè)置取消發(fā)布標(biāo)簽文本顏色
[SSUIEditorViewStyle setCancelButtonLabelColor:[UIColor blueColor]];
[SSUIEditorViewStyle setShareButtonLabelColor:[UIColor blueColor]];
//設(shè)置分享編輯界面狀態(tài)欄風(fēng)格
[SSUIEditorViewStyle setStatusBarStyle:UIStatusBarStyleLightContent];
//設(shè)置簡單分享菜單樣式
[SSUIShareActionSheetStyle setShareActionSheetStyle:ShareActionSheetStyleSimple];
//2、彈出ShareSDK分享菜單
[ShareSDK showShareActionSheet:view
items:nil
shareParams:shareParams
onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) { ...... }
不過,在iOS端的自定義分享菜單上shareSDK 給出開發(fā)者的自定義只是簡單的修改一下背景顏色、修改文本顏色等,并無法大面積修改UI,如果非要修改的話,開發(fā)者只能重新定制UI,包括圖標(biāo)排版,每個分享平臺的響應(yīng)等等,而相比iOS端,安卓端可以直接繼承其官方方法修改UI...有點小坑啊,希望以后多做改進!
假如你想自定義UI的話,你需要用自己的方法寫界面,寫好了之后可以調(diào)用ShareSDKd的無UI的分享方法
//創(chuàng)建分享參數(shù)
NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
[shareParams SSDKSetupShareParamsByText:@"分享內(nèi)容"
images:images //傳入要分享的圖片
url:[NSURL URLWithString:@"http://mob.com"]
title:@"分享標(biāo)題"
type:SSDKContentTypeAuto];
//進行分享
[ShareSDK share:SSDKPlatformTypeSinaWeibo //傳入分享的平臺類型
parameters:shareParams
onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) { // 回調(diào)處理....}];
}
另外,現(xiàn)在ShareSDK 開源了他們的自定義UI,地址點這里
好了第三方分享就寫到這里了,希望此貼可以幫到你!同時也希望大家提出寶貴意見,大家一起交流學(xué)習(xí)。思密達!