使用shareSDk进行第三方分享

一、下载导入

1.进入mob官网(mob.com)下载自己需要的shareSDK。

2.将下载后的文件(.tar.gz)格式改为zip格式后,解压。

3.将文件导入项目中。

二、项目配置

1.添加依赖库(具体参照官网添加依赖库步骤)

2.添加shareSDK的AppKey,以及实现代码。

在appdelegate.m中

(1)导入类库

//第三方分享

#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"

//新浪微博SDK需要在项目Build Settings中的Other Linker Flags添加"-ObjC"


(2)在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中实现的代码

[ShareSDK registerApp:@"1d7970589ec14" activePlatforms:@[@(SSDKPlatformTypeSinaWeibo),@(SSDKPlatformSubTypeQZone),@(SSDKPlatformTypeSMS),@(SSDKPlatformTypeCopy),//@(SSDKPlatformSubTypeWechatSession),//@(SSDKPlatformSubTypeWechatTimeline),@(SSDKPlatformSubTypeQQFriend),@(SSDKPlatformSubTypeWechatFav)]  

 onImport:^(SSDKPlatformType platformType)

{

switch (platformType)

{

case SSDKPlatformTypeWechat:

[ShareSDKConnector connectWeChat:[WXApi class]];

break;

case SSDKPlatformTypeQQ:

[ShareSDKConnector connectQQ:[QQApiInterface class] tencentOAuthClass:[TencentOAuth class]];

break;

case SSDKPlatformTypeSinaWeibo:

[ShareSDKConnector connectWeibo:[WeiboSDK class]];

break;

case SSDKPlatformSubTypeQZone:

break;

case SSDKPlatformTypeSMS:

break;

case SSDKPlatformTypeCopy:

break;

//case SSDKPlatformSubTypeWechatSession:

//break;

//case SSDKPlatformSubTypeWechatTimeline:

//break;

case SSDKPlatformSubTypeQQFriend:

break;

case SSDKPlatformSubTypeWechatFav:

break;

default:

break;

}

}

onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo)

{

switch (platformType)

{

case SSDKPlatformTypeSinaWeibo:

//设置新浪微博应用信息,其中authType设置为使用SSO+Web形式授权

[appInfo SSDKSetupSinaWeiboByAppKey:@"979793039" appSecret:@"146adc5f73eced0654b711bdb4b18cac" redirectUri:@"http://msskd.com"  authType:SSDKAuthTypeBoth];

break;

case SSDKPlatformTypeWechat:

[appInfo SSDKSetupWeChatByAppId:@"wx8970561dd448bd02"

appSecret:@""];

break;

case SSDKPlatformTypeQQ:

[appInfo SSDKSetupQQByAppId:@"1106058709" appKey:@"L1Oz6KYzx2F6nHGl" authType:SSDKAuthTypeBoth];

default:

break;

}

}];

(3)在实现分享页面点击按钮方法中代码

[1]导入shareSDK的类库

#import <ShareSDK/ShareSDK.h>

#import <ShareSDKUI/ShareSDK+SSUI.h>

[2]使用系统UI界面实现代码

//1、创建分享参数

NSArray* imageArray = @[[UIImage imageNamed:@"appIcon.png"]];

//(注意:图片必须要在Xcode左边目录里面,名称必须要传正确,如果要分享网络图片,可以这样传iamge参数 images:@[@"http://mob.com/Assets/images/logo.png?v=20150320"])

if (imageArray)

{

NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];

//允许客户端进行分享

[shareParams SSDKEnableUseClientShare];

//自动设置的分享内容

//[shareParams SSDKSetupShareParamsByText:@"分享内容"  images:imageArray  url:[NSURL URLWithString:@"http://msskd.com"] title:@"分享标题" type:SSDKContentTypeWebPage];

//单独设置的不同平台分享内容

[shareParams SSDKSetupQQParamsByText:@"同城-专人-直送-4元起! 代取、代送、代买、代办事,顺风件~  微信公众号-app均可下单" title:@"郑州人都在用的跑腿APP" url:[NSURL URLWithString:userQRCodeString] thumbImage:[UIImage imageNamed:@"appIcon.png"] image:[UIImage imageNamed:@"appIcon.png"] type:SSDKContentTypeWebPage forPlatformSubType:SSDKPlatformSubTypeQZone];

[shareParams SSDKSetupQQParamsByText:@"同城-专人-直送-4元起! 代取、代送、代买、代办事,顺风件~  微信公众号-app均可下单" title:@"郑州人都在用的跑腿APP" url:[NSURL URLWithString:userQRCodeString] thumbImage:[UIImage imageNamed:@"appIcon.png"] image:[UIImage imageNamed:@"appIcon.png"] type:SSDKContentTypeWebPage forPlatformSubType:SSDKPlatformSubTypeQQFriend];

[shareParams SSDKSetupWeChatParamsByText:@"同城-专人-直送-4元起! 代取、代送、代买、代办事,顺风件~  微信公众号-app均可下单" title:@"郑州人都在用的跑腿APP" url:[NSURL URLWithString:userQRCodeString] thumbImage:[UIImage imageNamed:@"appIcon.png"] image:[UIImage imageNamed:@"appIcon.png"] musicFileURL:nil extInfo:nil fileData:nil emoticonData:nil type:SSDKContentTypeWebPage forPlatformSubType:SSDKPlatformSubTypeWechatFav];

//[self startShareWithType:SSDKPlatformTypeSinaWeibo];

//[self startShareWithType:SSDKPlatformSubTypeWechatSession];

//[self startShareWithType:SSDKPlatformSubTypeWechatTimeline];

//[self startShareWithType:SSDKPlatformSubTypeQQFriend];

[shareParams SSDKSetupSinaWeiboShareParamsByText:@"同城-专人-直送-4元起! 代取、代送、代买、代办事,顺风件~  微信公众号-app均可下单" title:@"郑州人都在用的跑腿APP" image:[UIImage imageNamed:@"appIcon.png"] url:[NSURL URLWithString:userQRCodeString] latitude:0 longitude:0 objectID:nil type:SSDKContentTypeWebPage];

//2、分享(可以弹出我们的分享菜单和编辑界面)

[ShareSDK showShareActionSheet:nil //要显示菜单的视图, iPad版中此参数作为弹出菜单的参照视图,只有传这个才可以弹出我们的分享菜单,可以传分享的按钮对象或者自己创建小的view 对象,iPhone可以传nil不会影响

items:@[@(SSDKPlatformTypeSinaWeibo),

@(SSDKPlatformSubTypeQZone),

//@(SSDKPlatformTypeSMS),

//@(SSDKPlatformTypeCopy),

//@(SSDKPlatformSubTypeWechatSession),

//@(SSDKPlatformSubTypeWechatTimeline),

@(SSDKPlatformSubTypeQQFriend),

@(SSDKPlatformSubTypeWechatFav)]

shareParams:shareParams

onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {

switch (state) {

case SSDKResponseStateSuccess:

{

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享成功" message:nil delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];

[alertView show];

break;

}

case SSDKResponseStateFail:

{

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"分享失败" message:[NSString stringWithFormat:@"%@",error] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];

[alert show];

break;

}

default:

break;

}

}

];

}

[3]使用自定义UI界面实现代码

其中shareType为平台类型,UI自己实现。

[ShareSDK share:shareType parameters:publishContent onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {

switch (state) {

case SSDKResponseStateSuccess:

{

NSLog(@"分享成功!");

[self showAlertViewWithTitle:@"分享成功" message:nil];

break;

}

case SSDKResponseStateFail:

{

NSLog(@"分享失败!");

[self showAlertViewWithTitle:@"分享失败" message:nil];

break;

}

case SSDKResponseStateCancel:

{

[self showAlertViewWithTitle:@"取消分享" message:nil];

break;

}

default:

break;

}

}];

3.适配iOS9+(官方文档都有详细信息)

大部分社交平台接口不支持https协议

小部分社交平台SDK不支持bitcode

添加白名单Schemes(在info.plist中设置)

添加URL types

URL Schemes内容为:

各平台缩写+appID

其中QQ+appID的16进制(必须是大写字母,且不够8为数的,前面添加0)

以上均为大概信息步骤,具体步骤以及代码看官方文档,官方还是写的比较详细。我这里只是用作自我总结,加深记忆。

补充问题:

1.开发中使用shareSDk的UI界面,新浪微博不能直接跳转app,先跳出shareSDK的弹窗,完善信息后才能跳转。(shareSDK的弹窗的右边图片默认是变型的,但是不影响分享后的图片,介于美观考虑,不推荐使用默认分享UI)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容