iOS第三方分享-ShareSDK

网址链接:http://mob.com/Download/detail?type=1&plat=2

由于新版的简单分享很多功能都有,而且打包后体积比全版本的少了几M所以在这里用这个

1.在官网下载SDK并导入相应的framework(比起之前的少了很多库)

2.初始化ShareSDK(因为,一般分享的话就这几个平台,全部集成下)

AppDelegate中导入头文件

//ShareSDK必要头文件
#import <ShareSDK/ShareSDK.h>
#import <ShareSDKConnector/ShareSDKConnector.h>
//腾讯开放平台(对应QQ和QQ空间)SDK头文件
#import <TencentOpenAPI/TencentOAuth.h>
#import <TencentOpenAPI/QQApiInterface.h>
//微信SDK头文件
#import "WXApi.h"
//新浪微博SDK头文件
#import "WeiboSDK.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions NS_AVAILABLE_IOS(3_0);

 [ShareSDK registerApp:@"iosv1101"
          activePlatforms:@[
                            @(SSDKPlatformTypeSinaWeibo),
                            @(SSDKPlatformTypeTencentWeibo),
                            @(SSDKPlatformTypeMail),
                            @(SSDKPlatformTypeSMS),
                            @(SSDKPlatformTypeCopy),
                            @(SSDKPlatformTypeFacebook),
                            @(SSDKPlatformTypeTwitter),
                            @(SSDKPlatformTypeWechat),
                            @(SSDKPlatformTypeQQ),
                            @(SSDKPlatformTypeDouBan)]
                 onImport:^(SSDKPlatformType platformType) {

                     switch (platformType)
                     {
                         case SSDKPlatformTypeWechat:
                             [ShareSDKConnector connectWeChat:[WXApi class]];
                             break;
                         case SSDKPlatformTypeQQ:
                             [ShareSDKConnector connectQQ:[QQApiInterface class] tencentOAuthClass:[TencentOAuth class]];
                             break;
                         default:
                             break;
                     }

                 }
          onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo) {

              switch (platformType)
              {
                  case SSDKPlatformTypeSinaWeibo:
                      //设置新浪微博应用信息,其中authType设置为使用SSO+Web形式授权
                      [appInfo SSDKSetupSinaWeiboByAppKey:@"568898243"
                                                appSecret:@"38a4f8204cc784f81f9f0daaf31e02e3"
                                              redirectUri:@"http://www.sharesdk.cn"
                                                 authType:SSDKAuthTypeBoth];
                      break;
                  case SSDKPlatformTypeTencentWeibo:
                      //设置腾讯微博应用信息,其中authType设置为只用Web形式授权
                      [appInfo SSDKSetupTencentWeiboByAppKey:@"801307650"
                                                   appSecret:@"ae36f4ee3946e1cbb98d6965b0b2ff5c"
                                                 redirectUri:@"http://www.sharesdk.cn"];
                      break;
                  case SSDKPlatformTypeFacebook:
                      //设置Facebook应用信息,其中authType设置为只用SSO形式授权
                      [appInfo SSDKSetupFacebookByAppKey:@"107704292745179"
                                               appSecret:@"38053202e1a5fe26c80c753071f0b573"
                                                authType:SSDKAuthTypeBoth];
                      break;
                  case SSDKPlatformTypeTwitter:
                      [appInfo SSDKSetupTwitterByConsumerKey:@"LRBM0H75rWrU9gNHvlEAA2aOy"
                                              consumerSecret:@"gbeWsZvA9ELJSdoBzJ5oLKX0TU09UOwrzdGfo9Tg7DjyGuMe8G"
                                                 redirectUri:@"http://mob.com"];
                      break;
                  case SSDKPlatformTypeWechat:
                      [appInfo SSDKSetupWeChatByAppId:@"wx4868b35061f87885"
                                            appSecret:@"64020361b8ec4c99936c0e3999a9f249"];
                      break;
                  case SSDKPlatformTypeQQ:
                      [appInfo SSDKSetupQQByAppId:@"100371282"
                                           appKey:@"aed9b0303e3ed1e27bae87c33761161d"
                                         authType:SSDKAuthTypeBoth];
                      break;
                  case SSDKPlatformTypeDouBan:
                      [appInfo SSDKSetupDouBanByApiKey:@"02e2cbe5ca06de5908a863b15e149b0b"
                                                secret:@"9f1e7b4f71304f2f"
                                           redirectUri:@"http://www.sharesdk.cn"];
                      break;
                  default:
                      break;
              }

          }];

以上是ShareSDK测试用的key,自己做程序的时候需要在ShareSDK申请,各个平台的key也要在各个平台申请

3.ShareSDK的使用

导入头文件

#import <ShareSDK/ShareSDK.h>
#import <ShareSDKExtension/SSEShareHelper.h>
#import <ShareSDKUI/ShareSDK+SSUI.h>
#import <ShareSDKUI/SSUIShareActionSheetStyle.h>
#pragma mark - 菜单分享
- (void)menuShareTest {
    NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
    [shareParams SSDKSetupShareParamsByText:@"分享内容"
                                     images:nil
                                        url:[NSURL URLWithString:@"http://mob.com"]
                                      title:@"分享标题"
                                       type:SSDKContentTypeImage];

    [ShareSDK showShareActionSheet:nil
                                                                items:@[
                                                                             @(SSDKPlatformTypeSinaWeibo),
                                                                             @(SSDKPlatformTypeTencentWeibo),
                                                                             @(SSDKPlatformSubTypeWechatSession),
                                                                             @(SSDKPlatformSubTypeWechatTimeline),       @(SSDKPlatformSubTypeQQFriend),
                                                                             @(SSDKPlatformSubTypeQZone),
                                                                             @(SSDKPlatformTypeWechat)]
                                                               shareParams:shareParams
                                                       onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
                                                           NSLog(@"-0-");
                                                       }];
    //删除和添加
//    [sheet.directSharePlatforms removeObject:@(SSDKPlatformTypeWechat)];
//    [sheet.directSharePlatforms addObject:@(SSDKPlatformTypeSinaWeibo)];
}

#pragma mark - 单个分享
- (void)onlyShareTest {
    NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
    [shareParams SSDKSetupShareParamsByText:@"分享内容"
                                         images:nil
                                            url:[NSURL URLWithString:@"http://mob.com"]
                                          title:@"分享标题"
                                           type:SSDKContentTypeImage];
    [ShareSDK share:SSDKPlatformTypeSinaWeibo parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
        switch (state) {
            case SSDKResponseStateSuccess:
            {
                UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享成功"
                                                                    message:nil
                                                                   delegate:nil
                                                          cancelButtonTitle:@"确定"
                                                          otherButtonTitles:nil];
                [alertView show];
                break;
            }
            case SSDKResponseStateFail:
            {
                UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享失败"
                                                                    message:[NSString stringWithFormat:@"%@", error]
                                                                   delegate:nil
                                                          cancelButtonTitle:@"确定"
                                                          otherButtonTitles:nil];
                [alertView show];
                break;
            }
            case SSDKResponseStateCancel:
            {
                UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享已取消"
                                                                    message:nil
                                                                   delegate:nil
                                                          cancelButtonTitle:@"确定"
                                                          otherButtonTitles:nil];
                [alertView show];
                break;
            }
            default:
                break;
        }
    }];
}

#pragma mark - 一键分享

- (void)onceShareTest {

    //构造分享参数
    NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
    [shareParams SSDKSetupShareParamsByText:@"我在使用ShareSDK的一键分享。"
                                         images:nil
                                            url:nil
                                          title:nil
                                           type:SSDKContentTypeImage];

    [SSEShareHelper oneKeyShare:@[@(SSDKPlatformTypeSinaWeibo), @(SSDKPlatformTypeTencentWeibo)] parameters:nil onStateChanged:^(SSDKPlatformType platformType, SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
        NSString *platformName = nil;
        switch (platformType)
        {
            case SSDKPlatformTypeSinaWeibo:
                platformName = @"新浪微博";
                break;
            case SSDKPlatformTypeTencentWeibo:
                platformName = @"腾讯微博";
                break;
            default:
                break;
        }
    }];
}

#pragma mark - 第三方登录(信息获取)

- (void)threeShareTest {
    [ShareSDK getUserInfo:SSDKPlatformTypeSinaWeibo onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error) {
        NSLog(@"平台类型根据枚举查看:%ld",(unsigned long)user.platformType);
        NSLog(@"授权就不为空:%@",user.credential);
        NSLog(@"uid:%@",user.uid);
        NSLog(@"昵称:%@",user.nickname);
        NSLog(@"图片地址:%@",user.icon);
        NSLog(@"性别:%ld",(unsigned long)user.gender);
    }];
}

#pragma mark - 其他
- (void)other {
    //判断是否授权
    [ShareSDK hasAuthorized:SSDKPlatformTypeSinaWeibo];
}
时间: 2024-10-08 22:26:27

iOS第三方分享-ShareSDK的相关文章

ios第三方分享到qq、微信、人人网、微博总结

我们开发出来的APP通常要通过第三方分享到其他社交平台,如qq.微博微信 等.通过分享可以提高APP的传播效率,增加APP的曝光率,因此也算是APP功能 里的标配了吧.目前常用的第三方分享途径有qq.微信.微博.人人等.这些平台 大多都有自己的官方第三方分享组件可用,官方文档也比较丰富.使用起来比较方便. 这里我将已我的APP demo 两万番茄为例,展示如何实现这四个平台的第三方分享功 能. 虽然不同平台提供的模块和接口各异,但总体上,都有着相同的套路,搞通了一 套平台,其他的也就可以依样画葫

iOS 第三方分享Twitter授权的错误解决(友盟分享)

1.导入sdk,在程序中导入相应的系统库,请参见友盟的第三方分享文档.这里主要说明当一切都弄好了的时候,一运行报coredata命名错误, 解决步骤如下: 一定要让Twitter中包含它 , 2.步骤如下

iOS - ShareSDK第三方分享(图文和视频)和登录

由于近期工作需要自己抽时间搞了一下第三方分享,这里使用的是shareSDK的第三方,在使用的过程中有一些心得和体会,特在此和大家分享一下~ 1.在经过将近一周时间的开发,终于搞定ios分享了. 2.由于原来使用的是友盟的分享,因此我从对比的使用角度来分析. a.安全角度,与sharesdk相比,友盟的分享我听说有盗取用户资料的行为,仅仅是听说,但是为了将来用户的安全,我选择shareSDK. b.技术支持角度,我问过友盟的客服与shareSDK的客服,我自己感觉,shareSDK的客服更加有耐心

基于Qt下移动平台第三方接入-ShareSDK(新浪微博,微信朋友圈等分享登录)

一. ShareSDK简介 ShareSDK是为iOS.Android.WP8的APP提供社会化功能的一个组件,开发者只需10分钟即 可集成到自己的APP中,它不仅支持如QQ.微信.新浪微博.腾讯微博.开心网.人人网. 豆瓣.网易微博.搜狐微博.facebook.twitter.google+等国内外主流社交平台,还有强大 的统计分析管理后台,可以实时了解用户.信息流.回流率.传播效应等数据,有效的指导日常 运营与推广,同时为APP引入更多的社会化流量. 一. ShareSDK的功能特点 (1)

iOS开发之第三方分享QQ分享,史上最新最全第三方分享QQ方式实现

本文章源码地址: https://github.com/zhonggaorong/QQLoginDemo 项目搭建参考:  (包含QQ登录源码下载 . QQ sdk集成) http://blog.csdn.net/zhonggaorong/article/details/51699623 分享第三方分享之QQ分享各种坑的总结: 1. 分享老是提示未注册QQ,解决办法就是在程序已启动,就向QQ进行授权.代码如下 - (BOOL)application:(UIApplication *)applic

iOS社会化分享(干货)

一.苹果原生集成的社会化分享 1.哪些平台 (1)Twitter (2)FaceBook (3)Flickr (4)Vimeo (5)新浪微博  :iOS6 (6)腾讯微博 : iOS7 2.框架 :social.framework,很简单的框架,内容不多. 3.应用场景(不只是原生的分享) (1)通过用户的分享,实现口碑营销 (2)就是广告 (3)形式很多,比如红包,推广 4.使用方式 (1)提供一个控制器SLComposeViewController,这个控制器包含一些属性和方法 <1>添

iOS第三方支付集成——微信支付

近期笔者开发的项目中,需要用到支付宝支付和微信支付.大概一个月前,支付宝就已经集成完毕并可以正常使用.但在集成坑爹的微信支付SDK时,遇到了诸多问题,搞了将近三个星期.期间不断的跟后台同事核对代码(签名.下单),支付流程,其中的血泪艰辛,不言而喻.现笔者把集成过程中遇到的一些问题记录下来,供自己和大家参考.如果有什么不对的地方,也请大家多多指正: 吐槽完了,下面出正文. 补充说明:第一准备阶段不需要开发者负责操作,如果你是iOS开发人员,只想找到调用微信支付的代码,可直接跳过 第一准备阶段. 一

超全!整理常用的iOS第三方资源

超全!整理常用的iOS第三方资源 一:第三方插件 1:基于响应式编程思想的oc 地址:https://github.com/ReactiveCocoa/ReactiveCocoa 2:hud提示框 地址:https://github.com/jdg/MBProgressHUD 3:XML/HTML解析 地址:https://github.com/topfunky/hpple 4:有文字输入时,能根据键盘是否弹出来调整自身显示内容的位置 地址:https://github.com/michaelt

iOS开发之shareSDK

1.获取AppKey 如何在我们的官网注册应用得到appkey,请点击链接看里面的操作步骤 2.下载SDK 标准版 3.快速集成 第一步:将下载的SDK解压后导入您的工程中,见下图(点击这里查看视频教程) 拖到工程中后弹出以下对话框,勾选"Copy items into destination group's folder(if needed)",并点击“Finish“按钮, 如图 注意:请务必在上述步骤中选择“Create groups for any added folders”单