上云无忧 > 文档中心 > 天翼云一键登录使用教程 - IOS客户端接入
一键登录
天翼云一键登录使用教程 - IOS客户端接入

文档简介:
本文为您介绍了IOS客户端如何接入一键登录功能。 1.iOS SDK接入指南。 1.1 注意事项。 使用一键登录服务用户须打开蜂窝数据流量,取号过程中会消耗用户少量的流量。 sdk 中自带有授权页面的 UI 逻辑,开发者可通过 SDK 接口暴露参数修改部分 UI 界面样式。
*产品来源:中国电信天翼云。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

1.iOS SDK接入指南

1.1 注意事项

  • 使用一键登录服务用户须打开蜂窝数据流量,取号过程中会消耗用户少量的流量。
  • sdk 中自带有授权页面的 UI 逻辑,开发者可通过 SDK 接口暴露参数修改部分 UI 界面样式。
  • 如果用户使用双卡手机,sdk 会使用当前设备上网的流量进行预取号操作。
  • sdk 支持版本:iOS9.0 及以上。
  • 请在天翼云官网-一键登录产品帮助中心-开发指南-SDK版本发布中下载最新版本SDK。

2.iOS SDK使用方法

2.1 环境配置

1.把 ability_login_ios_sdk.framework 拖入工程中,勾选 Copy item if needed。

2.把 AbilityResource.bundle资源包拖入工程,勾选 Copy item if needed。

3.info.plist 文件中添加 App Transport Security Settings / Allow Arbitrary Loads 子项 设置为 YES。

4.build phases 里添加 Copy Files, Destination 设置为 Frameworks,点击+,添加 ability_login_ios_sdk.framework。

5.build settings 里设置 Header Search Paths 设置 ability_login_ios_sdk.framework文件的路径,设置为 "$(SRCROOT)/ability_login_ios_demo_oc/ability_login_ios_sdk.framework"。

6.build settings 例设置 Other Linker Flags 添加 “-ObjC”。

如果项目是 swift 需要添加如下步骤

  1. 创建 OCBridgeHeader.h 桥接文件。

  1. 桥接文件中添加如下引用。

  1. build settings 里设置 Objective-C Bridging Header 设置为 $(PROJECT_DIR)/ability_login_ios_demo_swift/OCBridgeHeader.h。

  1. Precompile Bridging Header 设置为 No。

2.2 初始化接口

应用调用此方法初始化sdk,初始化会校验应用标识是否存在,回调成功后进行下一步预取号操作。

1.0.3及以上版本使用

-( void )initLogin:(NSString *)lxId secret:(NSString *)lxscecret isCompletion:( void (^)
(NSDictionary *_Nonnull result))completion复制

参数定义

参数名称 含义
lxid 用户申请应用的id
lxscecret 用户申请应用的secret(1.0.3及版本以上)
completion 初始化结果回调

成功响应

参数名称 类型 含义
code NSString 200
msg NSString success
userId NSString 用户userId
operatorType NSString 运营商类型

代码示例:

[[AbilityLoginManage instance] initLogin:appId secret:appsecret isCompletion:^
(NSDictionary * _Nonnull result) {    NSString *success = [NSString stringWithFormat:@"%@", [result objectForKey:@"code"]];

    **if** ([success isEqualToString:@"200"]) {

        NSLog(@"初始化成功");

    }
}];复制

2.3 预取号接口

应用调用预取号接口校验应用签名,校验成功后接口会返回运营商类型和状态信息,回调成功后进行调起授权页面操作。

-( void )preLoginCompletion:( void (^)(NSDictionary *_Nonnull result))completion复制

参数定义

参数名称 含义
completion 预取号结果回调

成功响应

参数名称 类型 含义
resultCode NSString 0
resultMsg NSString 获取accessCode成功
operatorType NSString 运营商类型

代码示例

[[AbilityLoginManage instance] preLoginCompletion:^(NSDictionary * _Nonnull result) { 
   **if** ([result[@"resultCode"] isEqualToString:@"0"]) {

        NSLog(@"初始化成功");

    }
}];复制

2.4 调取授权页接口

应用调用该方法会拉起用户授权页面,当用户点击确认授权后接口会返回运营商类型和token;用户授权页支持部分页面样式自定义,开发者可以通过实例化 ClickLogConfig 类,设置响应的参数调整页面样式。

-(void)loginToken:(nonnull UIViewController *)controller clickConfig:(nonnullClickLogConfig *)
config getTokenCompletion:(void(^)(NSDictionary *_Nonnullresult))completion复制

参数定义

参数名称 含义
controller 当前页面
config ClickLogConfig实例,自定义授权页
completion 授权页结果回调

成功响应

参数名称 类型 含义
resultCode NSString 0
resultMsg NSString 登录成功
operatorType NSString 运营商类型
encrypt NSString 返回登录加密串

代码示例

[[AbilityLoginManage instance] loginToken:self clickConfig:config getTokenCompletion:^
(NSDictionary * _Nonnull result) { NSLog(@"~ %@" ,result);

 //请求客户服务器取号代码
}];复制

2.5 点击其它登录方式

当用户在授权页面点击其他登录方式后,sdk 回调该方法。

-(void)otherLogclick;复制

代码示例:

[AbilityLoginManage instance].delegate = self; //添加代理abilityManageDelegate-
( void )otherLogclick{NSLog(@"点击了其他登录方式");
}复制

2.6 点击关闭授权页按钮回调

添加代理参考2.5。

-( void )closeButtonClick复制

2.7 点击授权登录未同意隐私协议回调

-(void)uncheckPrivacy;复制

代码示例

-( void )uncheckPrivacy{[WHToast showMessage:@"自定义-请同意服务条款"
 originY: self .view.frame.size.height-100.0 duration:1 finishHandler: nil ];
}复制

2.8 点击隐私协议勾选框回调

-( void )privacyAgreementBoxStatus:( BOOL )boxStatuss;复制

2.9 点击登录按钮回调

-(void)abilityLogclick;复制

注:用户可在此回调中自定义加载动画

2.10 获取手机号能力

详见一键登录服务端接入文档。

2.11 本机号码校验

-( void )verificationPhoneNumber:(NSString *)phoneNumber getVerificatCompletion:( void (^)
(NSDictionary *_Nonnull result))completion;复制

参数定义

参数名称 含义
phoneNumber 手机号
completion 授权页结果回调

成功响应

参数名称 类型 含义
resultCode NSString 0
resultMsg NSString 校验成功
operatorType NSString 运营商类型
encrypt NSString 返回校验加密串

代码示例

[[AbilityLoginManage instance] verificationPhoneNumber:_phoneTextStr getVerificatCompletion:
^(NSDictionary * _Nonnull result) {NSLog(@" result%@", result);

//请求客户服务器号码校验代码
}];复制

2.12 判断设备移动数据网络是否开启

-(BOOL)checkDeviceCellularDataEnable ;复制

2.13 控制台日志输出开关

-(void)setPrintLoggerEnable:(BOOL)enable;复制

2.14 获取sdk版本号

-(NSString *)getVersion ;复制

2.15 获取运营商类型

-(NSString *)getOperatorType;复制

2.16 授权页面自定义UI参数

ClickLogConfig属性

#pragma mark **VC****属性**复制

授权登录页面是否全屏 默认全屏no

@property ( nonatomic ,  assign ) BOOL logIsPopup;复制

#pragma mark 状态栏

/*状态栏样式/

@property ( nonatomic , assign ) UIStatusBarStyle statusBarStyle;复制

#pragma mark 授权页导航栏

/*导航栏背景颜色/

@property ( nonatomic , strong ) UIColor *navBackColor;复制

/* 导航栏标题文本内容 /

@property ( nonatomic , strong ) NSString *navText;复制

/* 导航栏标题字体大小 /

@property ( nonatomic , assign ) int navTextSize;复制

/* 导航栏标题字体颜色 /

@property ( nonatomic , strong ) UIColor *navTextColor;复制

/* 导航栏标题是否隐藏,默认隐藏 /

@property ( nonatomic , assign ) BOOL navIsHide;复制

/* 返回按钮图片 /

@property ( nonatomic , strong ) UIImage *navReturnImg;复制

/* 返回按钮图片上下位置 /

@property ( nonatomic , assign ) float navReturnOffsetX;复制

//全屏时:按钮左侧距离屏幕左侧的偏移量 弹框时:按钮左侧距离弹框右侧的偏移量

@property ( nonatomic , assign ) float navReturnOffsetY;复制

/* 返回按钮图片宽高 /

@property ( nonatomic , assign ) float navReturnWidth;@property ( nonatomic , assign ) float navReturnHeight;复制

#pragma mark 隐私协议导航栏

/* 进入隐私协议导航栏背景颜色 /

@property ( nonatomic , strong ) UIColor *navPruvacyBackColor;复制

/* 进入隐私协议导航栏标题字体大小 /

@property ( nonatomic , assign ) int navPruvacyTextSize;复制

/* 进入隐私协议导航栏标题字体颜色 /

@property ( nonatomic , strong ) UIColor *navPruvacyTextColor;复制

/* 进入隐私协议导航栏返回图片 /

@property ( nonatomic , strong ) UIImage *navPruvacyReturnImg;复制
#pragma mark LOGO复制

/* LOGO图片 /

@property ( nonatomic , strong ) UIImage *logoImg;复制

/* LOGO的上下左右位置 /

@property ( nonatomic , assign ) float logoOffsetX;@property ( nonatomic , assign ) float logoOffsetY;复制

/* LOGO的宽高 /

@property ( nonatomic , assign ) float logoWidth;@property ( nonatomic , assign ) float logoHeight;复制

/* LOGO是否隐藏 /

@property ( nonatomic , assign ) BOOL logoIsHiddle;复制

#pragma mark 手机掩码

/* 手机号码字体颜色 /

@property ( nonatomic , strong ) UIColor *numberColor;复制

/* 手机号码字体大小 /

@property ( nonatomic , assign ) int numberTextSize;复制

/* 手机号码字体加粗,默认不加粗 /

@property ( nonatomic , assign ) int numberTextBold;复制

/* 手机号码MidX距离视图MidX轴的偏移 / //注意不要超出屏幕,超出屏幕移动会错位

@property ( nonatomic , assign ) float numFieldOffsetX;复制

/* 手机号码Y轴距离顶部偏移 /

@property ( nonatomic , assign ) float numFieldOffsetY;复制

/* 设置手机号码框的高度,暂不支持 /

#pragma mark 认证品牌

/* 认证品牌字体大小 /

@property ( nonatomic , assign ) int brandLabelTextSize;复制

/* 认证品牌字体颜色 /

@property ( nonatomic , strong ) UIColor *brandLabelTextColor;复制

/* 认证品牌MidX距离视图MidX轴的偏移 /

@property ( nonatomic , assign ) float brandLabelOffsetX;复制

/* 认证品牌Y轴距离顶部偏移 /

@property ( nonatomic , assign ) float brandLabelOffsetY;复制

#pragma mark 登录按钮

/* 登录按钮文本内容 /

@property ( nonatomic , strong ) NSString *logBtnText;复制

/* 登录按钮字体大小 /

@property ( nonatomic , assign ) int logBtnTextSize;复制

/* 登录按钮文本颜色 /

@property ( nonatomic , strong ) UIColor *logBtnTextColor;复制

/**登录按钮的左右边距 注意:按钮呈现的宽度在竖屏时必须大于屏幕的一半,横屏时必须大于屏幕的三分之一,默认左右是20

*/

@property ( nonatomic ,  assign ) CGFloat logBtnOriginL;@property ( nonatomic ,  assign ) CGFloat logBtnOriginR;复制

/* 登录按钮高 注意:必须大于40 /

@property ( nonatomic , assign ) float logBtnHeight;复制

/* 登录按钮Y轴位置 /

@property ( nonatomic , assign ) float logBtnOffsetY;复制

/* 登录按钮背景图片数组 /

@property ( nonatomic , strong ) NSArray *logBtnImgs;复制

#pragma mark 其他登录按钮

/* 其他登录方式是否隐藏 /

@property ( nonatomic , assign ) BOOL otherWayLogBtnHidden;复制

/* 其他登录方式文本内容 /

@property ( nonatomic , strong ) NSString *otherWayLogBtnText;复制

/* 其他登录方式字体颜色 /

@property ( nonatomic , strong ) UIColor *otherWayLogBtnTextColor;复制

/* 其他登录方式字体大小 /

@property ( nonatomic , assign ) int otherWayLogBtnTextSize;复制

/* 其他登录方式上下左右位置 /

@property ( nonatomic , assign ) float otherWayLogBtnOffsetX;@property
 ( nonatomic , assign ) float otherWayLogBtnOffsetY;复制

/* 其他登录方式宽高 /

@property ( nonatomic , assign ) float otherWayLogBtnOffWidth;@property 
( nonatomic , assign ) float otherWayLogBtnOffHeight;复制

#pragma mark 隐私协议

/* 勾选框未勾选图片 /

@property ( nonatomic , strong ) UIImage *uncheckedImg;复制

/* 勾选框已勾选图片 /

@property ( nonatomic , strong ) UIImage *checkedImg;复制

/* 勾选框是否勾选 /

@property ( nonatomic , assign ) BOOL checkedStatus;复制

/* 勾选框宽高 /

@property ( nonatomic , assign ) float checkedWH;复制

/* 隐私条款上左右边距 /

@property ( nonatomic , assign ) float pruvacyOffsetL;@property ( nonatomic , assign ) float pruvacyOffsetR;复制

/* 隐私条款底部 距离 屏幕底部偏移量 /

@property ( nonatomic , assign ) float pruvacyOffsetY_B;复制

/* 隐私条款字体大小 /

@property ( nonatomic , assign ) int pruvacyTextSize;复制

/* 隐私条款最前面的文字 /

@property ( nonatomic , strong ) NSString *pruvacyBeforText;复制

/* 第二个协议和第三个协议之间连接文字 /

@property ( nonatomic , strong ) NSString *pruvacyLinksText;复制

/* 隐私条款最后面的文字 /

@property ( nonatomic , strong ) NSString *pruvacyAfterText;复制

/* 自定义隐私条款标题和url数组 /

@property ( nonatomic , strong ) NSArray *pruvacyTitleAndUrlArr;复制

/* 运营商默认隐私协议显示位置,第一个或最后一个 /

@property ( nonatomic , assign ) DefaultPruvacyPosition defaultPruvacyPosition;复制

/* 隐私条款正常文字颜色 /

@property ( nonatomic , strong ) UIColor *norTruvacyTextColor;复制

/* 隐私条款协议文字颜色 /

@property ( nonatomic , strong ) UIColor *pruTruvacyTextColor;复制

/* 运营商隐私条款是否带书名号,默认不带书名号 /

@property ( nonatomic , assign ) BOOL pruvacyBookMark;复制

#pragma mark 授权页面

/* 背景颜色 /

@property ( nonatomic , strong ) UIColor *backgroundColor;复制

#pragma mark 弹窗授权页

/* 弹窗的宽高比例,底部弹窗时popupScaleW设置无效*/

@property (nonatomic,assign) float popupScaleW;
@property (nonatomic,assign) float popupScaleH;复制

/* 弹窗的圆角,底部弹窗时只对弹窗左上角和右上角生效* /

@property (nonatomic,assign) float popupCornerRadius;复制

/*是否底部弹窗,true 底部弹窗,false 居中弹窗 /

@property (nonatomic,assign) BOOL isBottom;复制

/* 弹框授权页上下左右位置,暂不支持 /

#pragma mark 自定义控件

typedef  void (^myCustomUIHandler)(UIView *customAreaView);复制

/* 添加自定义控件的,三方入口 /

@property ( nullable ,  nonatomic ,  copy ) myCustomUIHandler customUIHandler;
相似文档
  • 本文为您介绍了H5客户端如何接入一键登录、本机号码校验功能。 1.准备工作。 1.1 概述。 本文是H5一键登录、本机号码校验的接入文档,用于指导H5一键登录的接入,并详细描述集成步骤和使用方法。
  • 本文将为您介绍一键登录产品UniApp接入相关内容。 1.Uni SDK接入指南。 1.1 注意事项。 使用一键登录服务用户须打开蜂窝数据流量,取号过程中会消耗用户少量的流量; SDK中自带有授权页面的UI逻辑,开发者可通过SDK接口暴露参数修改部分UI界面样式;
  • 本文为您介绍了服务端如何接入一键登录功能。 1.APP获取授权手机号。 Path:/oauth-api/oauth/getMobilePhoneV2/{userId}/{appId} Method:POST。 接口描述:获取授权手机号。 请求参数。
  • 本文为您介绍一键登录产品运营商相关代码及说明。
  • 本文为您介绍一键登录返回码及相关说明。 200,success。 10101,应用标识不能为空,请确认URL中是否携带APPID。 10102,运营商类型不能为空,一般不会出现,如有遇到后请联系一键登录开发人员。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部