目錄結構 (使用時直接將SDK這個文件拖入工程)c++
SDKsql
| —– Required( MOB 基礎公共庫目錄 )swift
| —– MOBFoundation.framework:基礎功能框架。(必要)bash
| —– ShareSDK ( ShareSDK 目錄 )微信
| —– ShareSDK.framework:核心靜態庫。(必要)架構
| —– Support (ShareSDK 各組件)app
| —– Required ( 必要 )框架
| —– ShareSDK.bundle:ShareSDK資源文件。(必要)優化
| —– ShareSDKConnector.framework:用於ShareSDK框架與外部框架鏈接的代理框架插件。(使用第三方SDK時必要。)ui
| —– PlatformSDK 第三方平臺SDK。(不須要的平臺的SDK可直接移除)
| —– PlatformConnector 對ShareSDKConnector模塊架構進行優化,根據平臺進行分包。(不須要的平臺的庫能夠移除)
| —– Optional ( 可選 )
| —– ShareSDKUI.bundle:分享菜單欄和分享編輯頁面資源包。(若是自定義這些UI可直接移除)
| —– ShareSDKExtension.framework:對ShareSDK功能的擴展框架插件。(主要提供第三方平臺登陸、 一鍵分享、截屏分享、搖一搖分享等相關功能。須要使用以上功能時必要。)
| —– ShareSDKUI.framework:分享菜單欄和分享編輯頁面。(若是自定義這些UI可直接移除)
| —– ShareSDKConfigFile.bundle:用xml來初始化或者構造分享參數的資源文件。(用代碼來初始化,構造分享參數可直接移除,下載的時候也是可根據本身的要求勾選下載的)
| —– ShareSDKConfigFile.framework:用xml來初始化,構造分享參數,使用的分享的方法庫。用代碼來初始化,構造分享參數可直接移除,下載的時候也是可根據本身的要求勾選下載的)
3、快速集成
第一步:將下載的SDK解壓後導入到您的工程中,見下圖 :
注意:請務必在上述步驟中選擇「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
QQ好友和QQ空間SDK依賴庫
• libsqlite3.dylib
微信SDK依賴庫
• libsqlite3.dylib
Instagram須要依賴庫
• AssetsLibrary.framework
• Photos.framework
美拍須要依賴庫
• AssetsLibrary.framework
第三步:設置ShareSDK的Appkey並初始化對應的第三方社交平臺
在項目工程的Info.plist 中如圖增長 MOBAppkey 和 MOBAppSecret 兩個字段
在 MOBAppkey中 設置ShareSDK的appKey,若是還沒有在ShareSDK官網註冊過App,請移步到登陸後臺進行應用註冊。
友情提示:若是您同時多個MOBSDK產品 在info.plist中的設置一次就能夠了。
第四步:新建Header File,並創建橋接:
創建橋接(重要:這個橋接文件中寫入OC代碼的頭文件以後,Swift代碼就能夠調用OC的代碼了,放大可看大圖步驟):
第五步:打開橋接文件(ShareSDK-Bridging-Header.h)導入OC文件頭
打開ShareSDK-Bridging-Header.h,導入OC代碼文件頭,示例:
#import <ShareSDK/ShareSDK.h>
#import <ShareSDKUI/ShareSDK+SSUI.h>
#import <ShareSDKConnector/ShareSDKConnector.h>
//騰訊SDK頭文件
#import <TencentOpenAPI/TencentOAuth.h>
#import <TencentOpenAPI/QQApiInterface.h>
//微信SDK頭文件
#import "WXApi.h"
//新浪微博SDK頭文件
#import 「WeiboSDK.h"
//人人SDK頭文件
#import <RennSDK/RennSDK.h>
//Kakao SDK頭文件
#import <KakaoOpenSDK/KakaoOpenSDK.h>
//支付寶SDK
#import "APOpenAPI.h"
#import "APOpenAPI.h"
複製代碼
第六步:初始化社交平臺
打開AppDelegate.swift文件
在 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool 中調用registerApp方法來初始化SDK而且初始化第三方平臺
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
/**
* 初始化ShareSDK應用
*
* @param activePlatforms 使用的分享平臺集合,如:@[@(SSDKPlatformTypeSinaWeibo), @(SSDKPlatformTypeTencentWeibo)];
* @param importHandler 導入回調處理,當某個平臺的功能須要依賴原平臺提供的SDK支持時,須要在此方法中對原平臺SDK進行導入操做。具體的導入方式能夠參考ShareSDKConnector.framework中所提供的方法。
* @param configurationHandler 配置回調處理,在此方法中根據設置的platformType來填充應用配置信息
*/
ShareSDK.registerActivePlatforms(
[
SSDKPlatformType.typeSinaWeibo.rawValue,
SSDKPlatformType.typeWechat.rawValue,
SSDKPlatformType.typeQQ.rawValue
],
onImport: {(platform : SSDKPlatformType) -> Void in
switch platform
{
case SSDKPlatformType.typeSinaWeibo:
ShareSDKConnector.connectWeibo(WeiboSDK.classForCoder())
case SSDKPlatformType.typeWechat:
ShareSDKConnector.connectWeChat(WXApi.classForCoder())
case SSDKPlatformType.typeQQ:
ShareSDKConnector.connectQQ(QQApiInterface.classForCoder(), tencentOAuthClass: TencentOAuth.classForCoder())
default:
break
}
},
onConfiguration: {(platform : SSDKPlatformType , appInfo : NSMutableDictionary?) -> Void in
switch platform
{
case SSDKPlatformType.typeSinaWeibo:
//設置新浪微博應用信息,其中authType設置爲使用SSO+Web形式受權
appInfo?.ssdkSetupSinaWeibo(byAppKey: "568898243",
appSecret: "38a4f8204cc784f81f9f0daaf31e02e3",
redirectUri: "http://www.sharesdk.cn",
authType: SSDKAuthTypeBoth)
case SSDKPlatformType.typeWechat:
//設置微信應用信息
appInfo?.ssdkSetupWeChat(byAppId: "wx4868b35061f87885",
appSecret: "64020361b8ec4c99936c0e3999a9f249")
case SSDKPlatformType.typeQQ:
//設置QQ應用信息
appInfo?.ssdkSetupQQ(byAppId: "100371282",
appKey: "aed9b0303e3ed1e27bae87c33761161d",
authType: SSDKAuthTypeWeb)
default:
break
}
})
return true
}
}
複製代碼
// 1.建立分享參數
let shareParames = NSMutableDictionary()
shareParames.ssdkSetupShareParams(byText: "分享內容",
images : UIImage(named: "shareImg.png"),
url : NSURL(string:"http://mob.com") as URL!,
title : "分享標題",
type : SSDKContentType.image)
//2.進行分享
ShareSDK.share(SSDKPlatformType.typeSinaWeibo, parameters: shareParames) { (state : SSDKResponseState, nil, entity : SSDKContentEntity?, error :Error?) in
switch state{
case SSDKResponseState.success: print("分享成功")
case SSDKResponseState.fail: print("受權失敗,錯誤描述:\(error)")
case SSDKResponseState.cancel: print("操做取消")
default:
break
}
}
複製代碼
先在ShareSDK-Bridging-Header.h中導入微信的頭文件(上文介紹中已導入)
打開AppDelegate.swift文件,修改初始化方法(修改地方加粗顯示):
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
/**
* 初始化ShareSDK應用
*
* @param activePlatforms 使用的分享平臺集合,如:@[@(SSDKPlatformTypeSinaWeibo), @(SSDKPlatformTypeTencentWeibo)];
* @param importHandler 導入回調處理,當某個平臺的功能須要依賴原平臺提供的SDK支持時,須要在此方法中對原平臺SDK進行導入操做。具體的導入方式能夠參考ShareSDKConnector.framework中所提供的方法。
* @param configurationHandler 配置回調處理,在此方法中根據設置的platformType來填充應用配置信息
*/
ShareSDK.registerActivePlatforms(
[ SSDKPlatformType.typeWechat.rawValue],
// onImport 裏的代碼,須要鏈接社交平臺SDK時觸發
onImport: {(platform : SSDKPlatformType) -> Void in
switch platform
{
case SSDKPlatformType.typeWechat:
ShareSDKConnector.connectWeChat(WXApi.classForCoder())
default:
break
}
},
onConfiguration: {(platform : SSDKPlatformType , appInfo : NSMutableDictionary?) -> Void in
switch platform
{
case SSDKPlatformType.typeWechat:
//設置微信應用信息
appInfo?.ssdkSetupWeChat(byAppId: "wx4868b35061f87885",
appSecret: "64020361b8ec4c99936c0e3999a9f249")
default:
break
}
})
return true
}
}
複製代碼
先在ShareSDK-Bridging-Header.h中導入QQ的頭文件(上文介紹中已導入)
打開AppDelegate.swift文件,修改初始化方法(修改地方加粗顯示):
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
/**
* 初始化ShareSDK應用
*
* @param activePlatforms 使用的分享平臺集合,如:@[@(SSDKPlatformTypeSinaWeibo), @(SSDKPlatformTypeTencentWeibo)];
* @param importHandler 導入回調處理,當某個平臺的功能須要依賴原平臺提供的SDK支持時,須要在此方法中對原平臺SDK進行導入操做。具體的導入方式能夠參考ShareSDKConnector.framework中所提供的方法。
* @param configurationHandler 配置回調處理,在此方法中根據設置的platformType來填充應用配置信息
*/
ShareSDK.registerActivePlatforms(
[SSDKPlatformType.typeQQ.rawValue],
// onImport 裏的代碼,須要鏈接社交平臺SDK時觸發
onImport: {(platform : SSDKPlatformType) -> Void in
switch platform
{
case SSDKPlatformType.typeQQ:
ShareSDKConnector.connectQQ(QQApiInterface.classForCoder(), tencentOAuthClass: TencentOAuth.classForCoder())
default:
break
}
},
onConfiguration: {(platform : SSDKPlatformType , appInfo : NSMutableDictionary?) -> Void in
switch platform
{
case SSDKPlatformType.typeQQ:
//設置QQ應用信息
appInfo?.ssdkSetupQQ(byAppId: "100371282",
appKey: "aed9b0303e3ed1e27bae87c33761161d",
authType: SSDKAuthTypeWeb)
default:
break
}
})
return true
}
}
複製代碼
附:目前的新浪微博SDK須要在項目的Build Settings中的Other Linker Flags添加」-ObjC」,若是不配置有可能會崩潰。步驟以下:
當新浪微博須要客戶端分享或者增長關注微博的功能,須要打開工程中的*AppDelegate.m(*表明你的工程名字)文件,導入新浪微博SDK的頭文件並增長新浪微博的外部庫文件接口:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
/**
* 初始化ShareSDK應用
*
* @param activePlatforms 使用的分享平臺集合,如:@[@(SSDKPlatformTypeSinaWeibo), @(SSDKPlatformTypeTencentWeibo)];
* @param importHandler 導入回調處理,當某個平臺的功能須要依賴原平臺提供的SDK支持時,須要在此方法中對原平臺SDK進行導入操做。具體的導入方式能夠參考ShareSDKConnector.framework中所提供的方法。
* @param configurationHandler 配置回調處理,在此方法中根據設置的platformType來填充應用配置信息
*/
ShareSDK.registerActivePlatforms(
[ SSDKPlatformType.typeSinaWeibo.rawValue],
// onImport 裏的代碼,須要鏈接社交平臺SDK時觸發
onImport: {(platform : SSDKPlatformType) -> Void in
switch platform
{
case SSDKPlatformType.typeSinaWeibo:
ShareSDKConnector.connectWeibo(WeiboSDK.classForCoder())
default:
break
}
},
onConfiguration: {(platform : SSDKPlatformType , appInfo : NSMutableDictionary?) -> Void in
switch platform
{
case SSDKPlatformType.typeSinaWeibo:
//設置新浪微博應用信息,其中authType設置爲使用SSO+Web形式受權
appInfo?.ssdkSetupSinaWeibo(byAppKey: "568898243",
appSecret: "38a4f8204cc784f81f9f0daaf31e02e3",
redirectUri: "http://www.sharesdk.cn",
authType: SSDKAuthTypeBoth)
default:
break
}
})
return true
}
}
複製代碼