XMPP中使用block,判断登录状态
XMPP中使用block,判断登录状态
小鸡蹲蘑菇 发表于3年前
XMPP中使用block,判断登录状态
  • 发表于 3年前
  • 阅读 526
  • 收藏 0
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

摘要: XMPP中使用block,判断登录状态
 typedef enum {
     
     XMPPResultTypeLoginSuccess, 登录成功
     XMPPResultTypeLoginFailure, 登录失败
     XMPPResultTypeNetErr, 网络不给力
     XMPPResultTypeRegisterSuccess, 注册成功
     XMPPResultTypeRegisterFailure 注册失败
 }XMPPResultType;//定义枚举,这里只用到了登录失败

 

 typedef void (^XMPPResultBlock)(XMPPResultType type); // XMPP请求结果的block


//定义登录方法、block作为数据类型传入

 -(void)xmppUserLogin:(XMPPResultBlock)resultBlock{
     
      // 先把block存起来
     _resultBlock = resultBlock;
    // NSLog(@"打印block%p",_resultBlock);
     [_xmppStream disconnect];
     
     //  连接主机 成功后发送登录密码
     [self connectToHost];
 }


合适的时候调用

     if (_resultBlock) {
          NSLog(@"%@",_resultBlock);
         _resultBlock(XMPPResultTypeLoginFailure);//在xmpp的验证失败的代理方法中传入定义好的枚举值
     }


//登录页面方法

//点击登录按钮后判断登录状态。成功?失败?
//接受到XMPPResultTypeLoginFailure并会跳到XMPPResultTypeLoginFailure这个case中。
  [self.location xmppUserLogin:^(XMPPResultType type) {
             dispatch_async(dispatch_get_main_queue(), ^{
                 [MBProgressHUD hideHUDForView:self.view];
                 switch (type) {
                     case XMPPResultTypeLoginSuccess:
                         NSLog(@"登录成功");
                         [self enterMainPage];
                         break;
                     case XMPPResultTypeLoginFailure:
                         NSLog(@"登录失败");
                         [MBProgressHUD showError:@"用户名或者密码不正确" toView:self.view];
                         break;
                     case XMPPResultTypeNetErr:
                         [MBProgressHUD showError:@"网络不给力" toView:self.view];
                     default:
                         break;
                 }
             });
             
         }];


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 5
博文 68
码字总数 24144
×
小鸡蹲蘑菇
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: