目录结构 (使用时直接将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
}
}
复制代码