前言
在iOS平台,shareSDK是一个很成熟的第三方分享平台,提供了非常方便的接口,虽然官方给出了集成文档,但是还是有一些不明确的地方。现在分享给大家,如何集成简单的新浪微博分享。
第一步:去官网注册成为开发者
传送地址:ShareSDK
公司名称可以随意填写,其他基本信息要正确填写
第二步:进入后台创建应用获取App Key
- 获取App Key,后期会使用到
第三步:下载SDK并将解压后的文件夹拖到项目中
- 地址:shareSDK
- 勾选新浪微博
- 将文件解压后拖到项目中
- 注意:
- 请务必在上述步骤中选择“Create groups for any added folders”单选按钮组。
- 如果你选择“Create folder references for any added folders”,一个蓝色的文件夹引用将被添加到项目并且将无法找到它的资源。
第四步:添加依赖库
必须添加的依赖库(Xcode 7 之后 .dylib库后缀名更改为.tbd)
- libicucore.dylib
- libz.dylib
- libstdc++.dylib
- JavaScriptCore.framework
添加新浪微博SDK依赖库
- ImageIO.framework
- libsqlite3.dylib
第五步:前往新浪开发平台申请App Key
- 传送地址 : 新浪微博开发平台
- 登录微博账号后,选择移动应用
- 填写基本信息
- 创建成功后即可获得App Key 以及App Secret(后面会用到这两个东西)
- 另外在该页面需要填写好所有带 * 的选项
- 进行授权设置
第六步:打开工程中的AppDelegate.m文件和info.plist进行配置
- 首先在AppDelegate.m中导入头文件
#import "AppDelegate.h"
#import <ShareSDK/ShareSDK.h>
#import <ShareSDKConnector/ShareSDKConnector.h>
#import "WeiboSDK.h"
在- (BOOL)application: didFinishLaunchingWithOptions:方法中调用registerApp方法来初始化SDK并且初始化第三方平台
传送地址:各平台申请AppKey地址汇总
代码
[ShareSDK registerApp:@"填写在ShareSDK平台申请的App Key"
activePlatforms:@[
@(SSDKPlatformTypeSinaWeibo)
]
onImport:^(SSDKPlatformType platformType)
{
switch (platformType)
{
case SSDKPlatformTypeSinaWeibo:
[ShareSDKConnector connectWeibo:[WeiboSDK class]];
break;
default:
break;
}
}
onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo)
{
switch (platformType)
{
case SSDKPlatformTypeSinaWeibo:
//设置新浪微博应用信息,其中authType设置为使用SSO+Web形式授权
[appInfo SSDKSetupSinaWeiboByAppKey:@"填写在新浪微博开发平台申请的App Key"
appSecret:@"填写在新浪微博开发平台申请的App Secret"
redirectUri:@"http://www.weibo.com" // 这里不要乱写,否则会无法对跳转到微博登录页面
authType:SSDKAuthTypeBoth];
break;
default:
break;
}
}];
- 配置info.plist文件
第七步:在需要分享的页面进行设置
- 例如在该界面的rightBarButtonItem对应的action方法中写如下的代码
#pragma mark - shareButotn Action
- (void)shareAction:(UIBarButtonItem *)shareButton {
//1、创建分享参数
// 注意:如果要分享本地图片,必须要在Xcode左边目录里面,并且名称必须要传正确,
// 如果要分享网络图片,需要前往新浪微博开发平台申请高级读写权限,否则会报code=204的error
// 备注:分享网络图片的写法,@[@"http://cms-bucket.nosdn.127.net/catchpic/2/21/2122f33b01798096b7a8041e3736c2f2.jpg"])
// 分享的图片数组
NSArray* imageArray = @[[UIImage imageNamed:@"shareWeibo"]];
if (imageArray) {
NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
[shareParams SSDKSetupShareParamsByText:[NSString stringWithFormat:@"%@ \\n\\n 来自:Sugar Plus", _shareLink]
images:nil // 如果不想分享图片,填写nil即可
url:nil
title:@"分享标题"
type:SSDKContentTypeAuto];
//2、分享(可以弹出我们的分享菜单和编辑界面)
[ShareSDK showShareActionSheet:nil //要显示菜单的视图, iPad版中此参数作为弹出菜单的参照视图,只有传这个才可以弹出我们的分享菜单,可以传分享的按钮对象或者自己创建小的view 对象,iPhone可以传nil不会影响
items:nil
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;
}
}
];}
}
- 如果想分享网络图片需要前往新浪微博开发平台打开高级读写权限
- 想使用高级权限的前提是你的应用通过新浪微博的审核
- 需要完善如下信息
附带:效果图
- 点击rightBarButton后首先弹出一个sheet
- 配置需要分享的内容(可以自己更改)
- 第一次分享会弹出一个webView要求登录微博,以后再分享无需登录
- 分享成功后提示框
- 微博端效果图
- 由于没有填写那一大堆认证信息,所以显示的是 未通过审核应用
最后
如果大家想集成更多的三方平台分享,可以去查看更完整的shareSDK官方文档。希望我的分享能够帮到你。