前言
在iOS平臺,shareSDK是一個很成熟的第三方分享平臺,提供了非常方便的接口,雖然官方給出了集成文檔,但是還是有一些不明確的地方。現在分享給大家,如何集成簡單的新浪微博分享。
第一步:去官網注冊成為開發者
傳送地址:ShareSDK
公司名稱可以隨意填寫,其他基本信息要正確填寫
第二步:進入后臺創建應用獲取App Key
- 獲取App Key,后期會使用到
第三步:下載SDK并將解壓后的文件夾拖到項目中
- 地址:shareSDK
- 勾選新浪微博
- 將文件解壓后拖到項目中
- 注意:
- 請務必在上述步驟中選擇“Create groups for any added folders”單選按鈕組。
- 如果你選擇“Create folder references for any added folders”,一個藍色的文件夾引用將被添加到項目并且將無法找到它的資源。
第四步:添加依賴庫
必須添加的依賴庫(Xcode 7 之后 .dylib庫后綴名更改為.tbd)
- libicucore.dylib
- libz.dylib
- libstdc++.dylib
- JavaScriptCore.framework
添加新浪微博SDK依賴庫
- ImageIO.framework
- libsqlite3.dylib
第五步:前往新浪開發平臺申請App Key
- 傳送地址 : 新浪微博開發平臺
- 登錄微博賬號后,選擇移動應用
- 填寫基本信息
- 創建成功后即可獲得App Key 以及App Secret(后面會用到這兩個東西)
- 另外在該頁面需要填寫好所有帶 * 的選項
- 進行授權設置
第六步:打開工程中的AppDelegate.m文件和info.plist進行配置
- 首先在AppDelegate.m中導入頭文件
#import "AppDelegate.h"
#import <ShareSDK/ShareSDK.h>
#import <ShareSDKConnector/ShareSDKConnector.h>
#import "WeiboSDK.h"
在- (BOOL)application: didFinishLaunchingWithOptions:方法中調用registerApp方法來初始化SDK并且初始化第三方平臺
傳送地址:各平臺申請AppKey地址匯總
代碼
[ShareSDK registerApp:@"填寫在ShareSDK平臺申請的App Key"
activePlatforms:@[
@(SSDKPlatformTypeSinaWeibo)
]
onImport:^(SSDKPlatformType platformType)
{
switch (platformType)
{
case SSDKPlatformTypeSinaWeibo:
[ShareSDKConnector connectWeibo:[WeiboSDK class]];
break;
default:
break;
}
}
onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo)
{
switch (platformType)
{
case SSDKPlatformTypeSinaWeibo:
//設置新浪微博應用信息,其中authType設置為使用SSO+Web形式授權
[appInfo SSDKSetupSinaWeiboByAppKey:@"填寫在新浪微博開發平臺申請的App Key"
appSecret:@"填寫在新浪微博開發平臺申請的App Secret"
redirectUri:@"http://www.weibo.com" // 這里不要亂寫,否則會無法對跳轉到微博登錄頁面
authType:SSDKAuthTypeBoth];
break;
default:
break;
}
}];
- 配置info.plist文件
第七步:在需要分享的頁面進行設置
- 例如在該界面的rightBarButtonItem對應的action方法中寫如下的代碼
#pragma mark - shareButotn Action
- (void)shareAction:(UIBarButtonItem *)shareButton {
//1、創建分享參數
// 注意:如果要分享本地圖片,必須要在Xcode左邊目錄里面,并且名稱必須要傳正確,
// 如果要分享網絡圖片,需要前往新浪微博開發平臺申請高級讀寫權限,否則會報code=204的error
// 備注:分享網絡圖片的寫法,@[@"http://cms-bucket.nosdn.127.net/catchpic/2/21/2122f33b01798096b7a8041e3736c2f2.jpg"])
// 分享的圖片數組
NSArray* imageArray = @[[UIImage imageNamed:@"shareWeibo"]];
if (imageArray) {
NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
[shareParams SSDKSetupShareParamsByText:[NSString stringWithFormat:@"%@ \\n\\n 來自:Sugar Plus", _shareLink]
images:nil // 如果不想分享圖片,填寫nil即可
url:nil
title:@"分享標題"
type:SSDKContentTypeAuto];
//2、分享(可以彈出我們的分享菜單和編輯界面)
[ShareSDK showShareActionSheet:nil //要顯示菜單的視圖, iPad版中此參數作為彈出菜單的參照視圖,只有傳這個才可以彈出我們的分享菜單,可以傳分享的按鈕對象或者自己創建小的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;
}
}
];}
}
- 如果想分享網絡圖片需要前往新浪微博開發平臺打開高級讀寫權限
- 想使用高級權限的前提是你的應用通過新浪微博的審核
- 需要完善如下信息
附帶:效果圖
- 點擊rightBarButton后首先彈出一個sheet
- 配置需要分享的內容(可以自己更改)
- 第一次分享會彈出一個webView要求登錄微博,以后再分享無需登錄
- 分享成功后提示框
- 微博端效果圖
- 由于沒有填寫那一大堆認證信息,所以顯示的是 未通過審核應用
最后
如果大家想集成更多的三方平臺分享,可以去查看更完整的shareSDK官方文檔。希望我的分享能夠幫到你。