iOS友盟第三方登陆开发

一、申请应用信息

1、申请开发者账号

2、申请应用的appid等信息

腾讯开放平台WeiXin开放平台新浪微博开放平台

*申请分享应用的前提是需要应用已经上线,申请时需要提供商城地址。


二、下载友盟开发包

1、下载地址

2、下载完成后直接拖拽到项目目录里即可,Xcode 会自动区分 Header Search Paths、Framework Search Paths 、Library Search Paths

3、添加依赖库

具体操作请参考 友盟开发文档

三、配置工程

1、配置URL Schemes


四、添加代码

1、AppDelegate中添加:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    BOOL result = [UMSocialSnsService handleOpenURL:url];
    if (result == FALSE) {
        //调用其他SDK,例如支付宝SDK等
    }
    return result;
}

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
    BOOL result = [UMSocialSnsService handleOpenURL:url];
    if (result == FALSE) {
    }
    return result;
}

1、创建工具类:UMControl.h 负责友盟的信息初始化、分享、第三方登陆。

2、代码

.h文件

文件添加枚举类型便于区分登陆,以及保存当前登陆状态,便于重新登陆

typedef enum
{
    LoginTypeNone = 0,//尚未登陆
    LoginTypeQQ = 1,//QQ登陆
    LoginTypeWeiXin = 2,//微信登陆
    LoginTypeWeiBo = 3,//微博登陆
}LoginType;
声明block 用于返回登陆成功/失败信息

typedef void(^UMBlock)(BOOL success);
添加登陆方法

-(void)SocialSnsLoginWithType:(LoginType)type block:(UMBlock)block;

.m文件

添加头文件:

#import "UMSocial.h"
#import "UMSocialWechatHandler.h"
#import "UMSocialQQHandler.h"
#import "UMSocialSinaSSOHandler.h"


登陆方法

-(void)SocialSnsLoginWithType:(LoginType)type block:(UMBlock)block
{
    NSString *platformName = [self getPlatformNameWithType:type];
    UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:platformName];
    snsPlatform.loginClickHandler((UIViewController*)self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){
        if (response.responseCode == UMSResponseCodeSuccess) {
            UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:snsPlatform.platformName];
            /**
             第三方的路成功后的信息都保存在snsAccount中
             */
            NSLog(@"\nusername = %@,\n usid = %@,\n token = %@ iconUrl = %@,\n unionId = %@,\n thirdPlatformUserProfile = %@,\n thirdPlatformResponse = %@ \n, message = %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL, snsAccount.unionId, response.thirdPlatformUserProfile, response.thirdPlatformResponse, response.message);
            block(true);
        }else{
            block(false);
        }
    });
}

辅助方法:

-(NSString*)getPlatformNameWithType:(LoginType)type
{
    NSString *name = @"";
    switch (type) {
        case LoginTypeWeiBo:
            name = UMShareToSina;
            break;
        case LoginTypeWeiXin:
            name = UMShareToWechatSession;
            break;
        case LoginTypeQQ:
            name = UMShareToQQ;
            break;
        default:
            break;
    }
    return name;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值