iOS项目开发实战——使用ShareSDK进行QQ和微信分享

      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  。欢迎大家访问!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值