iOS 分享(微信、QQ、微博)

iOS開(kāi)發(fā)過(guò)程中可能會(huì)遇到需要進(jìn)行第三方分享的需求,比如向QQ,微信,微博等分享,我們今天要講到的方式是使用了一個(gè)第三方工具: http://www.sharesdk.cn

一、注冊(cè)賬號(hào)

去官網(wǎng)注冊(cè):http://www.sharesdk.cn

創(chuàng)建應(yīng)用,最終獲得 App Key,App Secret

二、SDK集成

1、下載SDK

把下載的SDK拖到項(xiàng)目工程,在彈出的對(duì)話框中選中"Copy items if needed"和"Create groups",并點(diǎn)擊“Finish“按鈕

2、添加依賴庫(kù)文件

必須添加的依賴庫(kù):

SystemConfiguration.framework

QuartzCore.framework

CoreTelephony.framework

libicucore.dylib

libz.1.2.5.dylib

Security.framework

3、根據(jù)社交平臺(tái)需要添加的依賴庫(kù)

Social.framework?? ?騰訊微博

Accounts.framework ?騰訊微博

MessageUI.framework 短信和郵件

libstdc++.dylib ??QQ好友和QQ空間SSO授權(quán)需要(新注冊(cè)的騰訊開(kāi)放平臺(tái)帳號(hào)只支持SSO授權(quán)權(quán)限)

libsqlite3.dylib ? QQ好友和QQ空間SSO授權(quán)需要(新注冊(cè)的騰訊開(kāi)放平臺(tái)帳號(hào)只支持SSO授權(quán)權(quán)限)

CoreMotion.framework ? Google+

CoreLocation.framework Google+

MediaPlayer.framework? Google+

CoreText.framework?? Google+

AssetsLibrary.framework? ? Google+

AddressBook.framework? Google+

到此為止SDK集成就算完成 下來(lái)我們開(kāi)始代碼部分

三、初始ShareSDK和社交平臺(tái)

在AppDelegate.m中添加ShareSDK頭文件

1.設(shè)置根視圖控制器

必須設(shè)置rootViewController。如果使用storyBoard,系統(tǒng)會(huì)自動(dòng)設(shè)置根視圖控制器。

2.初始化ShareSDK

導(dǎo)入頭文件,加上初始化方法。

#import <ShareSDK/ShareSDK.h>

//1.初始化ShareSDK應(yīng)用,字符串"ios1705"是應(yīng)該換成你申請(qǐng)的ShareSDK應(yīng)用中的Appkey

[ShareSDKregisterApp:@"ios1705"];

//2.?初始化社交平臺(tái)

//2.1?代碼初始化社交平臺(tái)的方法

[selfinitializePlat];

[self initializePlat ] ?方法見(jiàn)下一步(此處以微信,qq,騰訊微博 ,新浪微博為例);

3.初始化社交平臺(tái)

可以用代碼初始化或在ShareSDK開(kāi)發(fā)者后臺(tái)的社會(huì)化平臺(tái)設(shè)置中填入社交平臺(tái)的信息。

#import?"WXApi.h"

#import?"WeiboSDK.h"

#import?"WeiboApi.h"

#import <TencentOpenAPI/QQApi.h>

#import <TencentOpenAPI/QQApiInterface.h>

#import <TencentOpenAPI/TencentOAuth.h>

社交平臺(tái)的AppKey、AppSecret、回調(diào)地址等需要您自已去相應(yīng)平臺(tái)新建應(yīng)用獲取。

-?(void)initializePlat

{

/**

連接微信應(yīng)用以使用相關(guān)功能,此應(yīng)用需要引用WeChatConnection.framework和微信官方SDK

http://open.weixin.qq.com上注冊(cè)應(yīng)用,并將相關(guān)信息填寫(xiě)以下字段

**/

[ShareSDKconnectWeChatWithAppId:@""

appSecret:@""

wechatCls:[WXApiclass]];

/**

連接QQ應(yīng)用以使用相關(guān)功能,此應(yīng)用需要引用QQConnection.framework和QQApi.framework庫(kù)

http://mobile.qq.com/api/上注冊(cè)應(yīng)用,并將相關(guān)信息填寫(xiě)到以下字段

**/

//舊版中申請(qǐng)的AppId(如:QQxxxxxx類(lèi)型),可以通過(guò)下面方法進(jìn)行初始化

//????[ShareSDK?connectQQWithAppId:@"QQ075BCD15"?qqApiCls:[QQApi?class]];

[ShareSDKconnectQQWithQZoneAppKey:@""

qqApiInterfaceCls:[QQApiInterfaceclass]

tencentOAuthCls:[TencentOAuthclass]];

//

/**

連接騰訊微博開(kāi)放平臺(tái)應(yīng)用以使用相關(guān)功能,此應(yīng)用需要引用TencentWeiboConnection.framework

http://dev.t.qq.com上注冊(cè)騰訊微博開(kāi)放平臺(tái)應(yīng)用,并將相關(guān)信息填寫(xiě)到以下字段

如果需要實(shí)現(xiàn)SSO,需要導(dǎo)入libWeiboSDK.a,并引入WBApi.h,將WBApi類(lèi)型傳入接口

**/

[ShareSDKconnectTencentWeiboWithAppKey:@""

appSecret:@""

redirectUri:@"http://www.sharesdk.cn"

wbApiCls:[WeiboApiclass]];

//

/**

連接QQ空間應(yīng)用以使用相關(guān)功能,此應(yīng)用需要引用QZoneConnection.framework

http://connect.qq.com/intro/login/上申請(qǐng)加入QQ登錄,并將相關(guān)信息填寫(xiě)到以下字段

如果需要實(shí)現(xiàn)SSO,需要導(dǎo)入TencentOpenAPI.framework,并引入QQApiInterface.h和TencentOAuth.h,將QQApiInterface和TencentOAuth的類(lèi)型傳入接口

**/

//????[ShareSDK?connectQZoneWithAppKey:@""

//???????????????????????????appSecret:@""

//???????????????????qqApiInterfaceCls:[QQApiInterface?class]

//?????????????????????tencentOAuthCls:[TencentOAuth?class]];

/**

連接新浪微博開(kāi)放平臺(tái)應(yīng)用以使用相關(guān)功能,此應(yīng)用需要引用SinaWeiboConnection.framework

http://open.weibo.com上注冊(cè)新浪微博開(kāi)放平臺(tái)應(yīng)用,并將相關(guān)信息填寫(xiě)到以下字段

**/

[ShareSDKconnectSinaWeiboWithAppKey:@""

appSecret:@""

redirectUri:@"http://www.sharesdk.cn"];

}

四,設(shè)置URL Scheme

1.需要依賴客戶端分享或者要支持SSO授權(quán)(可以理解成跳到客戶端授權(quán))的平臺(tái)都需要配置平臺(tái)的URL Scheme(應(yīng)用分享到社交平臺(tái)后通過(guò)識(shí)別URL Scheme返回應(yīng)用)。具體配置URL Scheme請(qǐng)參考iOS配置SSO授權(quán)

(http://wiki.mob.com/%E9%85%8D%E7%BD%AEsso%E6%8E%88%E6%9D%83-2/)。

2.需要在AppDelegate.m中添加處理打開(kāi)鏈接的方法

- (BOOL)application:(UIApplication*)application

handleOpenURL:(NSURL*)url

{

return[ShareSDKhandleOpenURL:url

wxDelegate:self];

}

-?(BOOL)application:(UIApplication*)application

openURL:(NSURL*)url

sourceApplication:(NSString*)sourceApplication

annotation:(id)annotation

{

return[ShareSDKhandleOpenURL:url

sourceApplication:sourceApplication

annotation:annotation

wxDelegate:self];

}

五、構(gòu)造分享內(nèi)容并分享

1.構(gòu)造一個(gè)id類(lèi)型的對(duì)象,把需要分享的標(biāo)題、內(nèi)容、圖片、URL等 包裝在這個(gè)對(duì)象。

在需要分享的viewController 中導(dǎo)入頭文件

#import <ShareSDK/ShareSDK.h>

在需要分享的地方 實(shí)現(xiàn)如下方法

-(void)shareAct:(id)sender

{

//

NSString*imagePath?=?[[NSBundlemainBundle]pathForResource:@"ShareSDK"ofType:@"jpg"];

//1、構(gòu)造分享內(nèi)容

id?publishContent?=?[ShareSDKcontent:@"要分享的內(nèi)容"

defaultContent:@"默認(rèn)內(nèi)容"

image:[ShareSDKimageWithPath:imagePath]

title:@"ShareSDK"

url:@"http://www.mob.com"

description:@"這是一條演示信息"

mediaType:SSPublishContentMediaTypeNews];

//1+創(chuàng)建彈出菜單容器(iPad必要)

id?container?=?[ShareSDKcontainer];

[containersetIPadContainerWithView:senderarrowDirect:UIPopoverArrowDirectionUp];

//2、彈出分享菜單

[ShareSDKshowShareActionSheet:container

shareList:nil

content:publishContent

statusBarTips:YES

authOptions:nil

shareOptions:nil

result:^(ShareType?type,?SSResponseState?state,id?statusInfo,id?error,BOOLend)?{

//可以根據(jù)回調(diào)提示用戶。

if(state?==?SSResponseStateSuccess)

{

UIAlertView*alert?=?[[UIAlertViewalloc]initWithTitle:@"分享成功"

message:nil

delegate:self

cancelButtonTitle:@"OK"

otherButtonTitles:nil,nilnil];

[alertshow];

}

elseif(state?==?SSResponseStateFail)

{

UIAlertView*alert?=?[[UIAlertViewalloc]initWithTitle:@"分享失敗"

message:[NSStringstringWithFormat:@"失敗描述:%@",[errorerrorDescription]]

delegate:self

cancelButtonTitle:@"OK"

otherButtonTitles:nil,nilnil];

[alertshow];

}

}];

}

到此基本完成。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,991評(píng)論 19 139
  • 這幾天遇到一個(gè)需求:做第三方登錄和分享。遇到了一些坑,把整個(gè)過(guò)程整理記錄下來(lái),方便他人,同時(shí)也捋一下思路。 當(dāng)時(shí)考...
    碧霄問(wèn)鼎閱讀 40,124評(píng)論 21 135
  • IOS集成第三方支付、分享、登錄功能小結(jié) 作者 蠟筆小新 2016.7.1。由于蘋(píng)果強(qiáng)制要求適配ipv6,本文de...
    小新xin閱讀 1,210評(píng)論 0 1
  • 親密—瞬間吸引的隱秘力量 美奧瑞布萊福曼 關(guān)鍵對(duì)話 莎拉 羅森圖勒 教你一生受用的溝通方式 日福田健 從0到一 ...
    孫然閱讀 218評(píng)論 0 1