ShareSDK是一款非常强大也非常方便的第三方分享API。在IOS平台上使用ShareSDK可以方便的把你的内容分享到十几个社交平台上,这里我们简单介绍下如何分享到QQ和微信。
(1)申请QQ平台和微信平台的APP ID和APP KEY。详见我的博客《成为腾讯开发者——如何使用QQ开放平台和微信开放平台》。
(2)进入ShareSdk的官网 http://mob.com/#/index 。进行注册,然后登陆。
(3)下载对应平台的SDK。
(4)然后进入后台,创建一个应用。如图:
(5)应用创建完成后,进入后台,可以看到有APP KEY和APP Secret。在后续的项目开发中将会用到。
(6)然后开始在Xcode创建一个应用,我以Swift为例,进行和OC的混合编程。我已经把ShareSDK上传到百度网盘中,大家可以下载http://pan.baidu.com/s/1sjOLVnn。下载解压后拖入到项目中即可。
(7)添加依赖库。进入Build Phases-->Link Binary With Libraries进行添加。需要添加的依赖库如下:
(8)然后需要建立一个桥接文件。在桥接文件中写入如下代码:
#import <ShareSDK/ShareSDK.h> #import "WXApi.h" #import "WeiboSDK.h" #import <TencentOpenAPI/QQApiInterface.h> #import <TencentOpenAPI/TencentOAuth.h> #import "WXApi.h" #import <QZoneConnection/ISSQZoneApp.h>
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { //各平台申请key的方法可参阅:http://bbs.mob.com/forum.php?mod=viewthread&tid=275&page=1&extra=#pid860 //1.初始化ShareSDK应用,字符串"4a88b2fb067c"换成你申请的ShareSDK应用的Appkey,这个key来源于ShareSDK官网上申请获得 ShareSDK.registerApp("输入你在ShareSDK官网上申请应用的APP KEY") /**---------------------------------------------------------**/ //2.初始化新浪微博 // ShareSDK.connectSinaWeiboWithAppKey("1916892007", appSecret: "0e5456c4c4380661c103acd38bc9a8f7", redirectUri: "http://www.nbdpc.gov.cn/", weiboSDKCls: WeiboSDK.classForCoder()) //上面的方法会又客户端跳客户端,没客户端条web. //下面这方法,如果不想用新浪客户端授权只用web的话就可以使用。 //[ShareSDK connectSinaWeiboWithAppKey:<#(NSString *)#> appSecret:<#(NSString *)#> redirectUri:<#(NSString *)#>] /**---------------------------------------------------------**/ //初始化微信,微信开放平台上注册应用 ShareSDK.connectWeChatWithAppId("在微信平台上申请的APP KEY",appSecret:"在微信平台上申请的APP Secret",wechatCls:WXApi.classForCoder()); //如果在分享菜单中想取消微信收藏,可以初始化微信及微信朋友圈,取代上面整体初始化的方法 //微信好友[ShareSDK connectWeChatSessionWithAppId:<#(NSString *)#> appSecret:<#(NSString *)#> wechatCls:<#(__unsafe_unretained Class)#>] //微信朋友圈[ShareSDK connectWeChatTimelineWithAppId:<#(NSString *)#> appSecret:<#(NSString *)#> wechatCls:<#(__unsafe_unretained Class)#>] /**---------------------------------------------------------**/ //初始化QQ,QQ空间,使用同样的key,请在腾讯开放平台上申请,注意导入头文件: /** 已经在桥街文件ShareSDK-Bridging-Header.h中导入 #import <TencentOpenAPI/QQApiInterface.h> #import <TencentOpenAPI/TencentOAuth.h> **/ //连接QQ应用 ShareSDK.connectQQWithQZoneAppKey("在腾讯平台上申请的APP ID", qqApiInterfaceCls: QQApiInterface.classForCoder(), tencentOAuthCls: TencentOAuth.classForCoder()) //连接QQ空间应用 ShareSDK.connectQZoneWithAppKey("在腾讯平台上申请的APP ID", appSecret: "在腾讯平台上申请的APP Secret", qqApiInterfaceCls: QQApiInterface.classForCoder(), tencentOAuthCls: TencentOAuth.classForCoder()) /**---------------------------------------------------------**/ return true } //添加两个回调方法,return的必须要ShareSDK的方法 func application(application: UIApplication, handleOpenURL url: NSURL) -> Bool { return ShareSDK.handleOpenURL(url, wxDelegate: self) } func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject? ) -> Bool{ return ShareSDK.handleOpenURL(url, sourceApplication: sourceApplication, annotation: annotation, wxDelegate: self) }
@IBAction func shareBarButtonItemPressed(sender: UIBarButtonItem) { //定制分享信息 var pic = NSBundle.mainBundle().pathForResource("appicon", ofType: "png") var publishContent : ISSContent = ShareSDK.content(这个是描述内容, defaultContent:"默认内容", image:ShareSDK.imageWithPath(pic), title:这个是标题, url:"这个是分享的链接", description:"这是一条测试信息", mediaType:SSPublishContentMediaTypeNews) ShareSDK.showShareActionSheet(nil, shareList: nil, content: publishContent, statusBarTips: false, authOptions: nil, shareOptions: nil) { (ShareType, state:SSResponseState, statusInfo :ISSPlatformShareInfo!, error:ICMErrorInfo!, end:Bool) -> Void in if (state.value == SSResponseStateSuccess.value){ println("分享成功") }else if (state.value == SSResponseStateFail.value){ println("分享失败,错误码:\(error.errorCode()),错误描述:\(error.errorDescription())") }else if (state.value == SSResponseStateCancel.value){ println("分享取消") } } }
总结下,在ShareSDK官网上有相应的Demo和文档可以下载,这样可以更加方便快捷的进行开发。
github主页:https://github.com/chenyufeng1991 。欢迎大家访问!