梦网统一认证SDK(iOS)接口文档

梦网统一认证SDK(iOS)接口文档

1.初始化SDK

接口说明

- (void)initWithAppId:(NSNumber *)appId appKey:(NSString*_Nonnull)appKey;
本方法用于发起初始化一键免密登录(或本机号码校验)能力,SDK完成网络请求并根据运营商类型自动选择配置信息。应用使用SDK功能时首先调用该方法。

接口参数

参数 类型 说明
appId int 应用注册的梦网id
appkey String 应用注册的appkey
  • 示例

    [[MWUniLoginSDK shareInstance] initWithAppId:MyAppId appKey:MyAppKey];
    

2.一键登录预取号

接口说明

- (void)getAccessCodeFinishBlock:(MWReturnBlock _Nonnull )complete;
预取号码信息,获取AccessCode。建议在APP登录页初始化时调用,提高后续授权页的打开速度。不要在APP启动初始化时调用,避免接口调用资源浪费。

接口参数

参数 类型 说明
complete MWReturnBlock 一键登录预取号结果的回调
  • 示例

     [[MWUniLoginSDK shareInstance] getAccessCodeFinishBlock:^(NSDictionary *_Nullable resultDic) {
      }];
    

3.一键登录唤起授权页并获取token

接口说明

 - (void)authLoginWithBlock:(MWReturnBlock _Nonnull )complete;
唤起一键登录授权页,在用户授权后获取一键登录的token。为了提高安全性,本SDK不直接提供获取手机号明文的功能。应用服务端可以使用此token访问梦网服务端接口,获取具体的手机号码信息。

接口参数

参数 类型 说明
complete MWReturnBlock 一键登录获取一键登录的token
  • 示例

    [[MWUniLoginSDK shareInstance] authLoginWithBlock:^(NSDictionary * _Nonnull resultDic) {
          NSLog(@"%@", resultDic);
      }];
    

4.获取本机号码校验token

接口说明

- (void)requestPhoneTokenWithBlock:(MWReturnBlock _Nonnull)complete;
返回token,用于手机号码校验。为了提高安全性,本SDK不直接提供号码校验功能,应用服务端可以使用此token和待校验的手机号码访问梦网服务端接口,确定待校验号码是否为本机号码。

接口参数

参数 类型 说明
complete MWReturnBlock 获取本机号码校验token的回调
  • 示例

    [[MWUniLoginSDK shareInstance] requestPhoneTokenWithBlock:^(NSDictionary * _Nonnull resultDic) {
          self.verifyToken = resultDic[@"token"];
      }];
    

5.授权页UI个性化定制

接口说明

[[MWUniLoginSDK shareInstance] setAuthViewModel:self.authViewModel];
根据应用UI风格可以个性化定制授权页UI显示效果,以保持应用统一的风格。

接口参数

参数 类型 说明
AuthViewModel UACustomModel 主题配置Model,通过配置里面的参数来自定义授权界面

AuthViewModel配置参数说明

5.1.导航栏

方法 参数类型 说明
authViewBlock Block 在authViewBlock返回的customView中添加自定义导航栏视图
webNavColor UIColor web协议界面导航标题栏颜色
webNavTitleAttrs NSDictionary web协议界面导航标题字体属性设置 默认值:@{NSForegroundColorAttributeName: [UIColor whiteColor], NSFontAttributeName: [UIFont systemFontOfSize:16]}
  • authViewBlock示例

     __weak typeof(self) weakSelf = self;
          //自定义视图在这里面添加到customView上
          _authViewModel.authViewBlock = ^(UIView *customView, CGRect numberFrame, CGRect loginBtnFrame, CGRect checkBoxFrame, CGRect privacyFrame) {
              __strong typeof(weakSelf) strongSelf = weakSelf;
              [strongSelf addSubviewsIntoCustomView:customView withNumberFrame:numberFrame loginBtnFrame:loginBtnFrame checkBoxFrame:checkBoxFrame privacyFrame:privacyFrame];
          };
    
    //给授权界面添加自定义UI
    - (void)addSubviewsIntoCustomView:(UIView *)customView withNumberFrame:(CGRect)numberFrame loginBtnFrame:(CGRect)loginBtnFrame checkBoxFrame:(CGRect)checkBoxFrame privacyFrame:(CGRect)privacyFrame
    {
    
      CGFloat top = Height_StatusBar;
      CGFloat height = Height_NavBar;
      if (_authViewModel.authWindow) {
          top = 0;
          height = 44;
        }
      
      UIButton *backButton = [UIButton buttonWithType:UIButtonTypeSystem];
      backButton.frame = CGRectMake(10, top, 40, 40);
      backButton.tintColor = [UIColor whiteColor];
      [backButton setImage:[UIImage imageNamed:@"titlebar_icon_back"] forState:UIControlStateNormal];
      [backButton addTarget:self action:@selector(backButtonAction) forControlEvents:UIControlEventTouchUpInside];
      
      UIView *navView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, customView.frame.size.width, height)];
      navView.backgroundColor = ThemeColor;
      [customView addSubview:navView];
    
      UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, top, customView.frame.size.width, 44)];
      titleLabel.font = [UIFont systemFontOfSize:17];
      titleLabel.textColor = [UIColor whiteColor];
      titleLabel.textAlignment = NSTextAlignmentCenter;
      titleLabel.text = @"一键登录";
      [navView addSubview:titleLabel];
    
      [navView addSubview:backButton];
    }
    

5.2.号码栏

方法 参数类型 说明
numberOffsetX NSNumber 号码栏X偏移量
setNumFieldOffsetY NSNumber 号码栏Y偏移量
setNumFieldOffsetY_B NSNumber 号码栏Y偏移量(基于底部)

5.3.登录按钮

方法 参数类型 说明
logBtnText NSAttributedString 设置登录按钮富文本内容
logBtnHeight CGFloat 登录按钮高 注意:必须大于40
logBtnOffsetY NSNumber 登录按钮Y偏移量
logBtnOffsetY_B NSNumber 登录按钮高距离底部的高度
logBtnOriginLR NSArray 登录按钮的左右边距 示例:@[@50,@70] 只能两个元素
logBtnImgs NSArray 登录按钮背景图片添加到数组(顺序如下)@[激活状态的图片,失效状态的图片,高亮状态的图片]

5.4.隐私栏

方法 参数类型 说明
uncheckedImg UIImage 复选框未选中时图片
checkedImg UIImage 复选框选中时图片
checkboxWH NSNumber 复选框大小(只能正方形)必须大于12
appPrivacyOriginLR NSArray 隐私条款(包括check框)的左右边距
appPrivacyDemo NSAttributedString 隐私的内容模板:1、全句可自定义但必须保留"&&默认&&"字段表明SDK默认协议,否则设置不生效 2、协议1和协议2的名称要与数组 str1 和 str2 ... 里的名称 一样3、必设置项(参考SDK的demo) appPrivacieDemo设置内容:登录并同意&&默认&&和&&百度协议&&、&&京东协议2&&登录并支持一键登录 展示: 登录并同意中国移动条款协议和百度协议1、京东协议2登录并支持一键登录
appPrivacy NSArray 隐私条款:数组(务必按顺序)要设置NSLinkAttributeName属性可以跳转协议
privacySymbol BOOL 隐私条款默认协议是否开启书名号
privacyState BOOL 隐私条款check框默认状态 默认:NO
privacyColor string 设置隐私栏复选框选中时图片
setPrivacyOffsetY NSNumber 设置隐私栏相对于标题栏下边缘的y偏移
setPrivacyOffsetY_B NSNumber 设置隐私栏相对于屏幕底部的y偏移

5.5.自定义布局

方法 参数类型 说明
authPageBackgroundImage UIImage 授权界面背景图片

5.6.转场动画

方法 参数类型 说明
presentType UAPresentationDirection 授权界面推出时的方向,此属性当authWindow为NO时设置才有效 UAPresentationDirectionBottom = 0, //底部 present默认效果 UAPresentationDirectionRight, //右边 导航栏效果 UAPresentationDirectionTop, //上面 UAPresentationDirectionLeft //左边

5.7.弹窗模式

方法 参数类型 说明
authWindow BOOL 弹窗模式开关
modalTransitionStyle UIModalTransitionStyle 弹窗模式推出动画 只咋在弹窗模式下生效UIModalTransitionStyleCoverVertical, 下推 UIModalTransitionStyleFlipHorizontal,翻转 UIModalTransitionStyleCrossDissolve, 淡出
  • 示例

     _authViewModel.authWindow = YES;
     _authViewModel.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    

6.退出授权页界面

在authViewBlock返回的customView里添加Button并绑定点击事件

- (void)addSubviewsIntoCustomView:(UIView *)customView withNumberFrame:(CGRect)numberFrame loginBtnFrame:(CGRect)loginBtnFrame checkBoxFrame:(CGRect)checkBoxFrame privacyFrame:(CGRect)privacyFrame
{

    CGFloat top = Height_StatusBar;
    CGFloat height = Height_NavBar;
    if (_authViewModel.authWindow) {
        top = 0;
        height = 44;
    }
    
    UIButton *backButton = [UIButton buttonWithType:UIButtonTypeSystem];
    backButton.frame = CGRectMake(10, top, 40, 40);
    backButton.tintColor = [UIColor whiteColor];
    [backButton setImage:[UIImage imageNamed:@"titlebar_icon_back"] forState:UIControlStateNormal];
    [backButton addTarget:self action:@selector(backButtonAction) forControlEvents:UIControlEventTouchUpInside];
    
    UIView *navView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, customView.frame.size.width, height)];
    navView.backgroundColor = ThemeColor;
    [customView addSubview:navView];

    UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, top, customView.frame.size.width, 44)];
    titleLabel.font = [UIFont systemFontOfSize:17];
    titleLabel.textColor = [UIColor whiteColor];
    titleLabel.textAlignment = NSTextAlignmentCenter;
    titleLabel.text = @"一键登录";
    [navView addSubview:titleLabel];

    [navView addSubview:backButton];
}
- (void)backButtonAction {
     NSNumber *type = [[MWUniLoginSDK shareInstance] getOperatorType];
    //移动卡直接退出
       if ([type intValue] == 1) {
           [self dismissViewControllerAnimated:YES completion:nil];
       } else {
           //联通、电信卡则发送以下通知
           [[NSNotificationCenter defaultCenter] postNotificationName:@"authViewDisMissKey" object:nil];
       }
}
SDK一键登录完成回调后,不会立即关闭授权页面,需要开发者主动调用此方法去完成页面的关闭。授权页的退出完全由APP控制,注意需要在主线程调用此函数。

7.获取当前SIM卡的运营商

接口说明

- (NSNumber*_Nonnull)getOperatorType;

返回值

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