腾讯云在线直播二

来源:互联网 发布:骨朵网络剧 编辑:程序博客网 时间:2024/04/29 07:37

书接上文,将环境配置好以后就可以开发云视频的各个流程了。首先我们从注册开始。目前为止我做好的只有手机号登录注册到在线直播这个流程。以后会陆续补充其他的登录注册方式。腾讯云登录注册包含了手机号、普通账号、邮箱以及第三方的方式。在腾讯云平台的文档里面我看到腾讯云要支持的第三方有微信、qq、人人网、新浪微博等等。但是代码里面暂时只看到了微信和qq的登录验证。可能是后续会支持那么多平台但是现在还没写出来(是不是腾讯在打广告啊),当然也可能是本人尚未找到其他的平台验证的接口。毕竟本人尚未将所有的登录注册方式验证过。好了,惯例,不多说废话。开始代码讲述。
1.手机号注册:
需要看文档的可以看下这个腾讯云直播接口文档
2.在写登录注册的时候需要一些demo里面封装好的接口文档(直接使用上面接口文档的可以不用看下面的步骤了)这三个文件夹里面的就是需要导入的demo里面的文件。
都在这三个文件夹中
第一个文件夹
第二个文件夹
第三个文件夹
3.这些文件导入后引入相关头文件可以上代码了。

#import "TLSRegister.h"#import "TLSLogin.h"

首先引入手机号注册的代理。@property (nonatomic, weak) id <TLSPwdRegListener> phoneRegisterdelegate;
4.实现委托self.phoneRegisterdelegate = self;
5.实现注册回调方法[[TLSRegister sharedInstance].accountHelper TLSPwdRegAskCode:phoneStr andTLSPwdRegListener:self.phoneRegisterdelegate];
6.引入注册的回调方法
这些方法里面处理相关的注册方法
7.手机号注册成功以后会回调这个方法

-(void) OnPwdRegAskCodeSuccess:(int)reaskDuration andExpireDuration:(int) expireDuration{    NSLog(@"请求短信验证码成功");}

8.然后将获取的验证码在验证方法里面写,代码如下

[[TLSRegister sharedInstance].accountHelper TLSPwdRegVerifyCode:yanzhengma  andTLSPwdRegListener:self.phoneRegisterdelegate];

9.接下来就可以等待回调成功了,在验证码成功的方法里面再调用注册密码即可。
验证码验证成功方法:

-(void) OnPwdRegVerifyCodeSuccess{    NSLog(@"验证短信验证码成功");}

10.提交密码方法

[[TLSRegister sharedInstance].accountHelper TLSPwdRegCommit:password andTLSPwdRegListener:self.phoneRegisterdelegate];

到此注册手机号就已经结束了。下面我们开始用手机号登陆
1.如果注册的手机跟登陆的手机是同一个,并且没有登陆过其他账号则可以直接登陆,否则需要一个验证方法,验证是否需要密码登陆,然后才可以调用登陆方法。具体代码如下:

//判断本地是否需要再登录    BOOL need =  [[TLSLogin sharedInstance].loginHelper needLogin:phoneStr];    //密码登录,获取票据    if (need) {        //设置登录代理        self.logindelegate = self;        NSInteger success = [[TLSLogin sharedInstance].loginHelper TLSPwdLogin:phoneStr andPassword:pwdStr andTLSPwdLoginListener:self.logindelegate];        NSLog(@"登录结果%ld",(long)success);    }    //本地已经登陆过了    else    {        //获取本地保存TLS票据        //获取签名        NSString* userSig = [[TLSLogin sharedInstance].loginHelper getTLSUserSig:phoneStr];        //如果本地有签名直接登录        if(userSig != nil)        {            //登录到IM服务器            [SVProgressHUD showInfoWithStatus:@"正在登录随心播"];            [[MultiIMManager sharedInstance] loginPhone:phoneNumStr sig:userSig succ:^(NSString* loginMsg) {                [[Business sharedInstance]getUserInfoByPhone:phoneNumStr succ:^(NSString *msg, id data) {                    [[UserInfo sharedInstance]setUserFromDBSig:userSig andInfo:data ];                    [SVProgressHUD showSuccessWithStatus:loginMsg];                    [self changeToLivePage];                } fail:^(NSString *error) {                    [SVProgressHUD showErrorWithStatus:error];                }];            } fail:^(NSString *err) {                [SVProgressHUD showErrorWithStatus:err];            }];        }    }

2.如果直接走else的方法那就不需要再放到代理回调方法中写代码,否则需要如下代理回调方法:

/** *  密码登陆要求验证图片验证码 * *  @param picData 图片验证码 *  @param errInfo 错误信息 */-(void) OnPwdLoginNeedImgcode:(NSData *)picData andErrInfo:(TLSErrInfo *)errInfo{    NSLog(@"%@密码登陆请求图片验证成功%@",picData,errInfo.sErrorMsg);}/** *  密码登陆请求图片验证成功 * *  @param picData 图片验证码 */-(void) OnPwdLoginReaskImgcodeSuccess:(NSData *)picData{    NSLog(@"密码登陆请求图片验证成功%@",picData);}/** *  密码登陆成功 * *  @param userInfo 用户信息 */-(void) OnPwdLoginSuccess:(TLSUserInfo *)userInfo{    NSLog(@"密码登陆成功%@",userInfo.identifier);    //获取签名    NSString* userSig = [[TLSLogin sharedInstance].loginHelper getTLSUserSig:userInfo.identifier];    if(userSig == nil)    {        [SVProgressHUD showErrorWithStatus:@"获取签名为空"];        return;    }    //手机号登录到IM服务器    [SVProgressHUD showInfoWithStatus:@"正在登录随心播"];    [[MultiIMManager sharedInstance] loginPhone:phoneStr sig:userSig succ:^(NSString* loginMsg) {        [[Business sharedInstance]getUserInfoByPhone:phoneStr succ:^(NSString *msg, id data) {            [[UserInfo sharedInstance]setUserFromDBSig:userSig andInfo:data ];            [SVProgressHUD showSuccessWithStatus:loginMsg];        } fail:^(NSString *error) {            [SVProgressHUD showErrorWithStatus:error];        }];    } fail:^(NSString *err) {        [SVProgressHUD showErrorWithStatus:err];    }];}/** *  密码登陆失败 * *  @param errInfo 错误信息 */-(void) OnPwdLoginFail:(TLSErrInfo *)errInfo{    NSLog(@"密码登陆失败%@",errInfo.sErrorMsg);}/** *  秘密登陆超时 * *  @param errInfo 错误信息 */-(void) OnPwdLoginTimeout:(TLSErrInfo *)errInfo{    NSLog(@"密登陆超时%@",errInfo.sErrorMsg);}

3.如果所有的回调都成功,程序会提示登陆成功。也会将个人信息保存到userinfo这个方法里面。

0 0
原创粉丝点击