ShareSDK 简洁版集成文档(Swift)

分享 · solar · 发布于 2 年前 · 5056 次阅读

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

FgPCzVEp9AR4fwec4ysKwozBG7_Q

FimyrWqyrKDY1SYa3JpDmBY0UDgj

拖到工程中后弹出以下对话框,勾选”Copy items into destination group’s folder(if needed)”,并点击“Finish“按钮, 如图

FlgpdjQtAtd3bk3gogUijqNk45E3

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

##第二步:添加依赖库

添加步骤见下图

FrcYYLv52wH78My2QhVCqao2W6cj

必须添加的依赖库如下:

  • libicucore.dylib
  • libz.dylib
  • libstdc++.dylib
  • JavaScriptCore.framework

以下依赖库根据社交平台添加

(1)新浪微博SDK依赖库

  ImageIO.framework

(2)QQ好友和QQ空间SDK依赖库(新注册腾讯开放平台帐号只支持SSO授权,只是老开发者才可以使用网页授权)

  libsqlite3.dylib

(3)微信SDK依赖库:

 libsqlite3.dylib

(4)Google+SDK依赖库:

 CoreMotion.framework
 CoreLocation.framework
 MediaPlayer.framework
 AssetsLibrary.framework
 AddressBook.framework

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

Ftb_P7nUkNblGzmdaKUZJQjLADuw

FpfwkP-Kk5ZfJIvnTBVclTVBqynh

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

FvQHPBdZyRbb8Y6hcnF6PD1skuO3

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

//GooglePlus SDK头文件
#import <GooglePlus/GooglePlus.h>

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

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

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

        ShareSDK.registerApp("iosv1101",

                 activePlatforms: [SSDKPlatformType.TypeSinaWeibo.rawValue,
                               SSDKPlatformType.TypeTencentWeibo.rawValue,
                               SSDKPlatformType.TypeFacebook.rawValue,
                               SSDKPlatformType.TypeWechat.rawValue,],        
                 onImport: {(platform : SSDKPlatformType) -> Void in

                    switch platform{

                    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.SSDKSetupSinaWeiboByAppKey("568898243",
                                                      appSecret : "38a4f8204cc784f81f9f0daaf31e02e3",
                                                    redirectUri : "http://www.sharesdk.cn",
                                                       authType : SSDKAuthTypeBoth)
                        break

                        case SSDKPlatformType.TypeWechat:
                            //设置微信应用信息
                             appInfo.SSDKSetupWeChatByAppId("wx4868b35061f87885", appSecret: “64020361b8ec4c99936c0e3999a9f249")
                        break

                        case SSDKPlatformType.TypeTencentWeibo:
                            //设置腾讯微博应用信息,其中authType设置为只用Web形式授权
                             appInfo.SSDKSetupTencentWeiboByAppKey("801307650",
                                                         appSecret : "ae36f4ee3946e1cbb98d6965b0b2ff5c",
                                                       redirectUri : "http://www.sharesdk.cn")
                        break
                        case SSDKPlatformType.TypeFacebook:
                            //设置Facebook应用信息,其中authType设置为只用SSO形式授权
                             appInfo.SSDKSetupFacebookByAppKey("107704292745179",
                                                     appSecret : "38053202e1a5fe26c80c753071f0b573",
                                                      authType : SSDKAuthTypeBoth)
                        break
                        default:
                            break

                        }
        })
        return true
    }

##第六步:添加实现代码

打开需要集成分享功能的视图源码,把如下代码复制并粘贴到你要分享的位置,例如到响应分享按钮的方法中。并且修改相应的参数即可。

 // 1.创建分享参数
        var shareParames = NSMutableDictionary()

        shareParames.SSDKSetupShareParamsByText("分享内容",
                                           images : UIImage(named: "shareImg.png"),
                                              url : NSURL(string:"http://mob.com"),
                                            title : "分享标题",
                                             type : SSDKContentType.Image)

        //2.进行分享
        ShareSDK.share(SSDKPlatformType.TypeSinaWeibo, parameters: shareParames) { (state : SSDKResponseState, userData : [NSObject : AnyObject]!, contentEntity :SSDKContentEntity!, error : NSError!) -> Void in

            switch state{

                case SSDKResponseState.Success:
                                                println("分享成功")
                                                let alert = UIAlertView(title: "分享成功", message: "分享成功", delegate: self, cancelButtonTitle: "取消")
                                                alert.show()
                case SSDKResponseState.Fail:    println("分享失败,错误描述:\(error)")
                case SSDKResponseState.Cancel:  println("分享取消")

            default:
                break
            }
        }

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

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

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

Fnnb5YN7p8Y97jD44_KBuvm5fdUN

先在ShareSDK-Bridging-Header.h中导入微信的头文件(上文介绍中已导入) 打开AppDelegate.swift文件,修改初始化方法(修改地方加粗显示):

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

        ShareSDK.registerApp("iosv1101",

                 activePlatforms: [997],

                 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.SSDKSetupWeChatByAppId("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,见下图

FgIKEbedqXtS1LR1bZZ2mf4oLkAL

Fm20UAuKXFZOwhp6KrSex7sJ-Cp_

先在ShareSDK-Bridging-Header.h中导入QQ的头文件(上文介绍中已导入) 打开AppDelegate.swift文件,修改初始化方法(修改地方加粗显示):

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

        ShareSDK.registerApp("iosv1101",

                 activePlatforms: [998],

                 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.SSDKSetupQQByAppId("100371282", appKey: "aed9b0303e3ed1e27bae87c33761161d", authType: SSDKAuthTypeBoth)
                        default:
                            break

                        }
        })
        return true
    }

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

登录新浪微博和facebook的开放平台,获取AppID 。新浪微博的url scheme的设置格式为wb+AppID,facebook的设置格式为fb+AppID。具体参考下图:

FgIKEbedqXtS1LR1bZZ2mf4oLkAL

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

FnfFmKNFh0RWrWVNVCQ7JEvL1Hjr


来源:http://mob.com/#/downloadDetail/ShareSDK/ios

共收到 0 条回复
回帖