阅读 21

腾讯云在线直播二

腾讯云在线直播二

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

1.手机号注册: 

需要看文档的可以看下这个腾讯云直播接口文档 

2.在写登录注册的时候需要一些demo里面封装好的接口文档(直接使用上面接口文档的可以不用看下面的步骤了)这三个文件夹里面的就是需要导入的demo里面的文件。 

 

 

 

 

3.这些文件导入后引入相关头文件可以上代码了。


#import "TLSRegister.h"

#import "TLSLogin.h"

1

2

首先引入手机号注册的代理。@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(@"请求短信验证码成功");

}

1

2

3

4

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


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

1

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

验证码验证成功方法:


-(void) OnPwdRegVerifyCodeSuccess

{

    NSLog(@"验证短信验证码成功");

}

1

2

3

4

10.提交密码方法


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

1

到此注册手机号就已经结束了。下面我们开始用手机号登陆 

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];

            }];

        }


    }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

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);

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

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

————————————————

版权声明:本文为CSDN博主「小飞work」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/niceboydo/article/details/51407074


文章分类
后端
文章标签
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 gxwowoo@163.com 举报,一经查实,本站将立刻删除。
相关推荐