> >

一、获取AppKey

如何在我们的官网注册应用得到appkey,请点击链接看里面的操作步骤。

二、下载SDK

获取ShareSDK-iOS简洁版:下载地址,解压压缩包之后结构如图所示:

0BA63DE6-1170-4E95-B49B-B37A552627F4

目录结构(ShareSDK 下,使用时直接将这个文件夹拖入工程)

(1) ShareSDK.framework:核心静态库。(必要)
(2) Support 文件夹。其中包含三个文件夹 :
     (a) Required (需要的类库) :
         ----- MOBFoundation.framework:基础功能框架。(必要)
         ----- ShareSDK.bundle:ShareSDK资源文件。(必要)
         ----- ShareSDKConnector.framework:用于ShareSDK框架与外部框架连接的代理框架插件。(使用第三方SDK时必要。)

     (b) Optional (可选类库):
         ----- ShareSDKExtension.framework:对ShareSDK功能的扩展框架插件。
        (主要提供第三方平台登录、 一键分享、截屏分享、摇一摇分享等相关功能。需要使用以上功能时必要。)
         ----- ShareSDKInterfaceAdapter.framework:ShareSDK v2.x对简洁版的接口兼容包。
         ----- ShareSDKUI.bundle:分享菜单栏和分享编辑页面资源包。(如果自定义这些UI可直接移除)
         ----- ShareSDKUI.framework:分享菜单栏和分享编辑页面。(如果自定义这些UI可直接移除)

     (c) PlatformSDK 第三方平台SDK。(不需要的平台的SDK可直接移除)

三、快速集成

第一步:将下载的SDK解压后导入到您的工程中,见下图 :

9022ED55-8A2F-482D-9B8F-855D8FB062E6

注意:请务必在上述步骤中选择“Create groups for any added folders”单选按钮组。如果你选择“Create folder references for any added folders”,一个蓝色的文件夹引用将被添加到项目并且将无法找到它的资源。

第二步:添加依赖库 添加步骤见下图

233D16A0-E241-4D4B-ACF2-4C03259F995A

必须添加的依赖库如下(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
短信和邮件需要依赖库 

  • MessageUI.framework

第三步:新建Header File,并建立桥接:

swift1swift2

建立桥接(重要:这个桥接文件中写入OC代码的头文件之后,Swift代码就可以调用OC的代码了,放大可看大图步骤):swift4

第四步:打开桥接文件(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"

 

第五步:设置ShareSDK的AppKey并初始化社交平台

打开AppDelegate.swift文件

在  func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool    中调用registerApp方法来初始化SDK并且初始化第三方平台

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {

        /**
        *  设置ShareSDK的appKey,如果尚未在ShareSDK官网注册过App,请移步到http://mob.com/login 登录后台进行应用注册,
        *  在将生成的AppKey传入到此方法中。
        *  方法中的第二个参数用于指定要使用哪些社交平台,以数组形式传入。第三个参数为需要连接社交平台SDK时触发,
        *  在此事件中写入连接代码。第四个参数则为配置本地社交平台时触发,根据返回的平台类型来配置平台信息。
        *  如果您使用的时服务端托管平台信息时,第二、四项参数可以传入nil,第三项参数则根据服务端托管平台来决定要连接的社交SDK。
        */

       ShareSDK.registerApp("iosv1101", activePlatforms:[
            SSDKPlatformType.typeSinaWeibo.rawValue,
            SSDKPlatformType.typeTencentWeibo.rawValue,
            SSDKPlatformType.typeWechat.rawValue,
            SSDKPlatformType.typeQQ.rawValue],    
                 onImport: { (platform : SSDKPlatformType) 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
                }

              }) { (platform : SSDKPlatformType, appInfo : NSMutableDictionary?) 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.typeTencentWeibo:
                //设置腾讯微博应用信息,其中authType设置为只用Web形式授权
                appInfo?.ssdkSetupTencentWeibo(byAppKey: "801307650",
                                                      appSecret : "ae36f4ee3946e1cbb98d6965b0b2ff5c",
                                                      redirectUri : "http://www.sharesdk.cn")
             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
            }

        }

编译并运行后,点击分享按钮就成功发送到社交平台的话说明你已经基本集成成功了。但是,为了使您的用户有更好的分享体验,以及您的应用有更多的分享量,更好地在社交平台上传播,我们建议您参考“进阶功能”的指引进行SSO(免登录)和更多社交平台的设置。

可选:支持微信所需的相关配置及代码

在微信开放平台(http://open.weixin.qq.com/ )注册应用并取得应用的AppID,然后打开下图位置,在URL Types中添加微信AppID

55BDA8FD-90BF-472B-999C-4C57680AB210

先在ShareSDK-Bridging-Header.h中导入微信的头文件(上文介绍中已导入)

打开AppDelegate.swift文件,修改初始化方法(修改地方加粗显示):

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
        /**
        *  设置ShareSDK的appKey,如果尚未在ShareSDK官网注册过App,请移步到http://mob.com/login 登录后台进行应用注册,
        *  在将生成的AppKey传入到此方法中。
        *  方法中的第二个参数用于指定要使用哪些社交平台,以数组形式传入。第三个参数为需要连接社交平台SDK时触发,
        *  在此事件中写入连接代码。第四个参数则为配置本地社交平台时触发,根据返回的平台类型来配置平台信息。
        *  如果您使用的时服务端托管平台信息时,第二、四项参数可以传入nil,第三项参数则根据服务端托管平台来决定要连接的社交SDK。
        */

       ShareSDK.registerApp("iosv1101", activePlatforms:[SSDKPlatformType.typeWechat.rawValue],

                onImport: { (platform : SSDKPlatformType) in
                switch platform
                {

                  case SSDKPlatformType.typeWechat:
                        ShareSDKConnector.connectWeChat(WXApi.classForCoder())

                    default:
                        break
                    }

        }) { (platform : SSDKPlatformType, appInfo : NSMutableDictionary?) in

            switch platform
            {

                        switch platform {

                        case SSDKPlatformType.typeWechat:
                //设置微信应用信息
                appInfo?.ssdkSetupWeChat(byAppId: "wx4868b35061f87885", appSecret: "64020361b8ec4c99936c0e3999a9f249")

                      default:
                break
            }

        }

        return true
    }

 

可选:支持QQ所需的相关配置及代码

登录QQ互联(http://connect.qq.com/ )注册成为开发者并登记应用取得AppId,然后打开下图位置,在URL Types中添加QQ的AppID,其格式为:”QQ” + AppId的16进制(如果appId转换的16进制数不够8位则在前面补0,如转换的是:5FB8B52,则最终填入为:QQ05FB8B52 注意:转换后的字母要大写)

转换16进制的方法:echo ‘ibase=10;obase=16;801312852′|bc,其中801312852为QQ的AppID,见下图9406F13D-F78B-4261-A52B-CFBC7ECF489080548F94-3DAE-45D5-9627-A76E9D514585

先在ShareSDK-Bridging-Header.h中导入QQ的头文件(上文介绍中已导入)

打开AppDelegate.swift文件,修改初始化方法(修改地方加粗显示):

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
        /**
        *  设置ShareSDK的appKey,如果尚未在ShareSDK官网注册过App,请移步到http://mob.com/login 登录后台进行应用注册,
        *  在将生成的AppKey传入到此方法中。
        *  方法中的第二个参数用于指定要使用哪些社交平台,以数组形式传入。第三个参数为需要连接社交平台SDK时触发,
        *  在此事件中写入连接代码。第四个参数则为配置本地社交平台时触发,根据返回的平台类型来配置平台信息。
        *  如果您使用的时服务端托管平台信息时,第二、四项参数可以传入nil,第三项参数则根据服务端托管平台来决定要连接的社交SDK。
        */

         ShareSDK.registerApp("iosv1101", activePlatforms:[
 SSDKPlatformType.typeQQ.rawValue],

            onImport: { (platform : SSDKPlatformType) in
                switch platform
                {
                     case SSDKPlatformType.typeQQ:
                        ShareSDKConnector.connectQQ(QQApiInterface.classForCoder(), tencentOAuthClass: TencentOAuth.classForCoder())
                    default:
                        break
                }

        }) { (platform : SSDKPlatformType, appInfo : NSMutableDictionary?) in

            switch platform
            {
                case SSDKPlatformType.typeQQ:
                //设置QQ应用信息
                appInfo?.ssdkSetupQQ(byAppId: "100371282",
                                           appKey : "aed9b0303e3ed1e27bae87c33761161d",
                                           authType : SSDKAuthTypeWeb)

                        default:
                break
            }

        }        
        return true
    }

 

可选:配置新浪微博、Facebook的SSO

登录新浪微博和facebook的开放平台,获取AppID 。新浪微博的url scheme的设置格式为wb+AppID,facebook的设置格式为fb+AppID。具体参考下图:49C4BF10-26ED-4553-9626-7110A15B8B9A

附:目前的新浪微博SDK需要在项目的Build Settings中的Other Linker Flags添加”-ObjC”,如果不配置有可能会崩溃。步骤如下:8

当新浪微博需要客户端分享或者增加关注微博的功能,需要打开工程中的*AppDelegate.m(*代表你的工程名字)文件,导入新浪微博SDK的头文件并增加新浪微博的外部库文件接口:

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {

        /**
        *  设置ShareSDK的appKey,如果尚未在ShareSDK官网注册过App,请移步到http://mob.com/login 登录后台进行应用注册,
        *  在将生成的AppKey传入到此方法中。
        *  方法中的第二个参数用于指定要使用哪些社交平台,以数组形式传入。第三个参数为需要连接社交平台SDK时触发,
        *  在此事件中写入连接代码。第四个参数则为配置本地社交平台时触发,根据返回的平台类型来配置平台信息。
        *  如果您使用的时服务端托管平台信息时,第二、四项参数可以传入nil,第三项参数则根据服务端托管平台来决定要连接的社交SDK。
        */
       ShareSDK.registerApp("iosv1101", activePlatforms:[
            SSDKPlatformType.typeSinaWeibo.rawValue],

            onImport: { (platform : SSDKPlatformType) in
                switch platform
                {
                    case SSDKPlatformType.typeSinaWeibo:
                        ShareSDKConnector.connectWeibo(WeiboSDK.classForCoder())
                    default:
                        break
                }

        }) { (platform : SSDKPlatformType, appInfo : NSMutableDictionary?) 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
    }