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>
(9)然后就可以写代码了。在AppDelegate.swift中实现如下三个方法:
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)
}
(10)然后添加一个按钮的监听事件。实现如下:
@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("分享取消")
}
}
}
(11)运行程序,点击按钮,就可以实现分享。
。
总结下,在ShareSDK官网上有相应的Demo和文档可以下载,这样可以更加方便快捷的进行开发。
github主页:https://github.com/chenyufeng1991 。欢迎大家访问!