注:第三方登录与第三方分享所用的SDK包是同一个
利用Mob官网下载所用SDK与其中的集成文档
Mob官网:http://www.mob.com
进入官网之后注册,注册成功并且登陆
选择到开发者服务点击ShareSDK下载SDK包
找到iOS版本的ShareSDK包选择下载
选择所用的社交平台并保存配置
这样我们就下载好了分享(登录)的SDK
再到文档中心ShareSDK选择iOS集成文档
注意:一定选对所对应的文档,是分享就点Share,是登录就点击第三方登录
根据集成文档的步骤完成第三方分享
1.导入SDK包,直接拖进工程,选择124确定添加
2.导入所需要用到的依赖库
注意:有必须添加的依赖库与选择性社交平台的依赖库
3.在项目工程的Info.plist 中如图增加 MOBAppKey 和 MOBAppSecret 两个字段
在 MOBAppKey中 设置ShareSDK的appKey,移步到首页进入后台进行注册新应用(应用名称可随意填写,之后可进行修改,如出现被使用过,请重新填写别的应用名)
创建完应用之后我们就可以获取到AppKey与App Secret
把AppKey与App Secret填入到所对应的 MOBAppKey 和 MOBAppSecret 两个字段的后面
打开你的工程找到AppDelegate.m(代表你的工程名字)导入头文件
只需要留下有关于微博的头文件及代码即可
#import <ShareSDK/ShareSDK.h>
#import <ShareSDKConnector/ShareSDKConnector.h>
// 新浪微博SDK头文件
#import "WeiboSDK.h"
// 注意:新浪微博SDK需要在项目Build Settings中的Other Linker Flags添加"-ObjC"(这一步一定要添加切注意大小写)
在- (BOOL)application: didFinishLaunchingWithOptions:方法中调用registerActivePlatforms方法来初始化SDK并且初始化第三方平台(各社交平台申请AppKey的网址及申请流程汇总)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
/**初始化ShareSDK应用
@param activePlatforms
使用的分享平台集合
@param importHandler (onImport)
导入回调处理,当某个平台的功能需要依赖原平台提供的SDK支持时,需要在此方法中对原平台SDK进行导入操作
@param configurationHandler (onConfiguration)
配置回调处理,在此方法中根据设置的platformType来填充应用配置信息
*/
[ShareSDK registerActivePlatforms:@[
@(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:@"568898243"
appSecret:@"38a4f8204cc784f81f9f0daaf31e02e3"
redirectUri:@"http://www.sharesdk.cn"
authType:SSDKAuthTypeBoth];
break;
default:
break;
}
}];
return YES;
}
这时候我们就需要用到新浪微博开放平台的应用里的一些AppKey与App Secret
用自己的微博账号就可以登录新浪微博开放平台
微连接点击移动应用再点击立即接入需要注册并且完成注册
完成注册之后我们就可以创建新应用,名字可随意拼写,应用平台选择iPhone选项并点击创建就完成了新应用的创建
把代码中的AppKey和appSecret换成我们创建的新浪微博开放平台的新应用里的一些AppKey与App Secret
SSDKSetupSinaWeiboByAppKey:@"568898243"
appSecret:@"38a4f8204cc784f81f9f0daaf31e02e3"
之后再把代码中的网址复制到新浪微博开放平台如下图的位置并且点击提交
redirectUri:@"http://www.sharesdk.cn"
4.把如下代码复制并粘贴到你要分享的位置,例如到响应分享按钮的方法中。并且修改相应的参数即可
创建一个按钮,添加点击方法
把以下代码复制到按钮方法中
// 1、创建分享参数
NSArray* imageArray = @[[UIImage imageNamed:@"shareImg.png"]];
// 注意:图片必须要在Xcode左边目录里面,名称必须要传正确,如果要分享网络图片,可以这样传image参数 images:@[@"http://mob.com/Assets/images/logo.png?v=20150320"]
if (imageArray) {
NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
[shareParams SSDKSetupShareParamsByText:@"分享内容"
images:imageArray
url:[NSURL URLWithString:@"http://mob.com"]
title:@"分享标题"
type:SSDKContentTypeAuto];
//有的平台要客户端分享需要加此方法,例如微博
[shareParams SSDKEnableUseClientShare];
//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;
}
}
];}
取得应用的AppID,然后打开下图位置,在URL Types中添加微博的AppID
AppID = wb +APPKey
注意:最后ios9+还需要配置对应的平台的白名单
在iOS 9下涉及到平台客户端跳转,系统会自动到项目info.plist下检测是否设置平台Scheme。对于需要配置的平台,如果没有配置,就无法正常跳转平台客户端。因此要支持客户端的分享和授权等,需要配置Scheme名单。
具体方法:
1>在项目的info.plist中添加一LSApplicationQueriesSchemes,类型为Array。
2>然后给它添加一个需要支持的项目,类型为字符串类型
以下是新浪微博需要导入的白名单
这样就可以了
必看注意:
1.在iOS9中,如果没有添加上述白名单,系统会打印类似如下提示:.-canOpenURL: failed for URL: “sinaweibohdsso://xxx” – error: “This app is not allowed to query for scheme sinaweibohdsso”(如下图)如没有添加相关白名单,有可能导致分享失败,例如不会跳转微信,不会跳转QQ等。
2.添加完上述所需的名单,系统依然会打印类似信息:.-canOpenURL: failed for URL: “sinaweibohdsso://xxx” – error: “null”这是系统打印的信息,目前是无法阻止其打印,即无法消除的