步驟流程
1 使用分享現(xiàn)注冊一個應用得到AppKey
2 下載SDK, 直接將文件拖入工程中
3 然后添加依賴庫(4個) libicucore.dylib libz.dylib libstdc++.dylib JavaScriptCore.framework
4 添加需要的平臺依賴庫
新浪微博SDK依賴庫 ImageIO.framework libsqlite3.dylib
QQ好友和QQ空間SDK依賴庫 libsqlite3.dylib
微信SDK依賴庫 libsqlite3.dylib
短信和郵件需要依賴庫 MessageUI.framework
5 在AppDelegate.m引入頭文件 <ShareSDK/ShareSDK.h> <ShareSDKConnector/ShareSDKConnector.h> 再引入需要的平臺頭文件 參考集成文檔
6 在- (BOOL)application: didFinishLaunchingWithOptions:方法中調(diào)用registerApp方法來初始化SDK并且初始化第三方平臺
7 ShareSDK registerApp:@"iosv1101" @""中就是注冊的AppKey
8 在需要用到分享的文件中引入頭文件 <ShareSDK/ShareSDK.h> <ShareSDKUI/ShareSDK+SSUI.h>
9 調(diào)用構造分享參數(shù)接口和分享的接口
獲取Appkey
- 注冊登錄
- 點擊右上角人物頭像->進入后臺
產(chǎn)品中心頁面:根據(jù)您的需要選擇相應SDK點擊進入后臺谁榜。第一個ShareSDK是社會化分享SDK辕棚,第二個是短信驗證碼SDK(不同SDK后臺創(chuàng)建應用的App Key和App Secret是不通用的,請分別創(chuàng)建)
- 獲取Appkey
下載安裝SDK
手動集成(官方快速集成說明)
cocoaPods 集成
1.安裝 cocopods 并為項目添加依賴關系;
參考<<CocoaPods安裝和使用>>
2.按需要在 Podfile 文件中添加命令
# 主模塊(必須)
pod 'ShareSDK3'
# Mob 公共庫(必須) 如果同時集成SMSSDK iOS2.0:可看此注意事項:http://bbs.mob.com/thread-20051-1-1.html
pod 'MOBFoundation'
# UI模塊(非必須饶囚,需要用到ShareSDK提供的分享菜單欄和分享編輯頁面需要以下1行)
pod 'ShareSDK3/ShareSDKUI'
# 平臺SDK模塊(對照一下平臺,需要的加上褐鸥。如果只需要QQ俊鱼、微信、新浪微博粟瞬,只需要以下3行)
pod 'ShareSDK3/ShareSDKPlatforms/QQ'
pod 'ShareSDK3/ShareSDKPlatforms/SinaWeibo'
pod 'ShareSDK3/ShareSDKPlatforms/WeChat'
pod 'ShareSDK3/ShareSDKPlatforms/RenRen'
pod 'ShareSDK3/ShareSDKPlatforms/AliPaySocial'
pod 'ShareSDK3/ShareSDKPlatforms/Kakao'
3.執(zhí)行 pod update
如果安裝過程中遇到問題,可以參考:官方問題說明文檔
項目集成分享功能
1.在AppDelegate.m
導入頭文件
#import <ShareSDK/ShareSDK.h>
#import <ShareSDKConnector/ShareSDKConnector.h>
//騰訊開放平臺(對應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>
2.- (BOOL)application: didFinishLaunchingWithOptions:
方法中調(diào)用registerApp
方法來初始化SDK并且初始化第三方平臺(各社交平臺申請APPkey 的網(wǎng)址及申請流程匯總)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
/**
* 設置ShareSDK的appKey萤捆,如果尚未在ShareSDK官網(wǎng)注冊過App裙品,請移步到http://mob.com/login 登錄后臺進行應用注冊,
* 在將生成的AppKey傳入到此方法中俗或。
* 方法中的第二個第三個參數(shù)為需要連接社交平臺SDK時觸發(fā)市怎,
* 在此事件中寫入連接代碼。第四個參數(shù)則為配置本地社交平臺時觸發(fā)蕴侣,根據(jù)返回的平臺類型來配置平臺信息焰轻。
* 如果您使用的是服務端托管平臺信息時,第二昆雀、四項參數(shù)可以傳入nil辱志,第三項參數(shù)則根據(jù)服務端托管平臺來決定要連接的社交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;
default:
break;
}
}
onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo)
{
switch (platformType)
{
case SSDKPlatformTypeSinaWeibo:
//設置新浪微博應用信息,其中authType設置為使用SSO+Web形式授權
[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"];
break;
default:
break;
}
}];
return YES;
}
3.添加實現(xiàn)代碼 打開需要集成分享功能的視圖源碼狞膘,把如下代碼復制并粘貼到你要分享的位置揩懒,例如到響應分享按鈕的方法中。并且修改相應的參數(shù)即可挽封。
1)導入頭文件
#import <ShareSDK/ShareSDK.h>
#import <ShareSDKUI/ShareSDK+SSUI.h>
2)調(diào)用構造分享參數(shù)接口和分享的接口
//1、創(chuàng)建分享參數(shù)
NSArray* imageArray = @[[UIImage imageNamed:@"shareImg.png"]];
//(注意:圖片必須要在Xcode左邊目錄里面,名稱必須要傳正確净神,如果要分享網(wǎng)絡圖片俄删,可以這樣傳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:@"分享標題"
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;
} }];
}
更多內(nèi)容
為了使您的用戶有更好的分享體驗癞埠,以及您的應用有更多的分享量状原,更好地在社交平臺上傳播,我們建議您參考“進階功能”的指引進行SSO(免登錄)和更多社交平臺的設置苗踪。
可選:支持微信所需的相關配置及代碼 在微信開放平臺(http://open.weixin.qq.com/ )注冊應用并取得應用的AppID颠区,然后打開下圖位置,在URL Types中添加微信AppID
打開AppDelegate.m
文件通铲,導入微信SDK的頭文件并增加微信的外部庫接口
#import <ShareSDKConnector/ShareSDKConnector.h>
//微信SDK頭文件
#import "WXApi.h"
//初始化的import參數(shù)注意要鏈接原生微信SDK毕莱。
case SSDKPlatformTypeWechat:
[ShareSDKConnector connectWeChat:[WXApi class]];
break;
可選:支持QQ所需的相關配置及代碼 登錄QQ互聯(lián)(http://connect.qq.com/ )注冊成為開發(fā)者并登記應用取得AppId,然后打開下圖位置颅夺,在URL Types中添加QQ的AppID央串,其格式為:”QQ” + AppId的16進制(如果appId轉換的16進制數(shù)不夠8位則在前面補0,如轉換的是:5FB8B52碗啄,則最終填入為:QQ05FB8B52 注意:轉換后的字母要大寫) 轉換16進制的方法:echo ‘ibase=10;obase=16;801312852′|bc质和,其中801312852為QQ的AppID:
echo 'ibase=10;obase=16;801312852'|bc
然后打開工程中的
AppDelegate.m
文件,導入QQSDK的頭文件并增加QQ的外部庫文件接口:
#import <ShareSDK/ShareSDK.h>
#import <ShareSDKConnector/ShareSDKConnector.h>
//騰訊開放平臺(對應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的設置格式為wb+AppID瘫想,facebook的設置格式為fb+AppID。具體參考下圖:
附:目前的新浪微博SDK需要在項目的Build Settings中的Other Linker Flags添加”-ObjC”昌讲,如果不配置有可能會崩潰国夜。步驟如下:
當新浪微博需要客戶端分享或者增加關注微博的功能,需要打開工程中的AppDelegate.m
文件短绸,導入新浪微博SDK的頭文件并增加新浪微博的外部庫文件接口:
#import <ShareSDK/ShareSDK.h>
#import <ShareSDKConnector/ShareSDKConnector.h>
//新浪微博SDK頭文件
#import "WeiboSDK.h"
//初始化的import參數(shù)注意要鏈接原生新浪微博SDK车吹。
case SSDKPlatformTypeSinaWeibo:
[ShareSDKConnector connectWeibo:[WeiboSDK class]];
break;
第三方登錄
添加實現(xiàn)代碼 打開需要集成登錄功能的視圖源碼筹裕,把如下代碼復制并粘貼到你要登錄的位置,例如到響應登錄按鈕的方法中窄驹。并且修改相應的參數(shù)即可朝卒。
這里以QQ登陸為例
(其他的平臺也一樣的處理,修改下初始化以及登陸方法里的平臺類型參數(shù):微信登錄-> SSDKPlatformTypeWechat,新浪微博登錄->SSDKPlatformTypeSinaWeibo,文檔最后介紹各個平臺需要配置的url schemes 參數(shù))
//例如QQ的登錄
[ShareSDK getUserInfo:SSDKPlatformTypeQQ
onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error)
{
if (state == SSDKResponseStateSuccess)
{
NSLog(@"uid=%@",user.uid);
NSLog(@"%@",user.credential);
NSLog(@"token=%@",user.credential.token);
NSLog(@"nickname=%@",user.nickname);
}
else
{
NSLog(@"%@",error);
}
}];
也可以調(diào)用這個方法:
// 導入頭文件
#import <ShareSDKExtension/SSEThirdPartyLoginHelper.h>
[SSEThirdPartyLoginHelper loginByPlatform:SSDKPlatformTypeQQ
onUserSync:^(SSDKUser *user, SSEUserAssociateHandler associateHandler) {
//在此回調(diào)中可以將社交平臺用戶信息與自身用戶系統(tǒng)進行綁定乐埠,最后使用一個唯一用戶標識來關聯(lián)此用戶信息抗斤。
//在此示例中沒有跟用戶系統(tǒng)關聯(lián),則使用一個社交用戶對應一個系統(tǒng)用戶的方式丈咐。將社交用戶的uid作為關聯(lián)ID傳入associateHandler瑞眼。
associateHandler (user.uid, user, user);
NSLog(@"dd%@",user.rawData);
NSLog(@"dd%@",user.credential);
}
onLoginResult:^(SSDKResponseState state, SSEBaseUser *user, NSError *error) {
if (state == SSDKResponseStateSuccess)
{
}
}];
支持客戶端登錄的相關配置
QQ如果要跳客戶端登錄的話,需要配置下URL Scheme:
然后打開下圖位置棵逊,在URL Types中添加騰訊AppID伤疙,其格式為:tencent+appID(你在QQ中申請的AppId), 如:tencent100371282。如圖所示:
各個主流社交平臺登錄需要配置的url schemes:
QQ授權<<LTLottery>>登錄信息
uid:4C44EDFD838BCFCC45FA9F6EEB41BFF6
access_token: 5824103C034EB76D8B7861204B090FE8
expires_in : 7775999.695360005
openid : 4C44EDFD838BCFCC45FA9F6EEB41BFF6
nickname:吳下阿蒙