【WeWeather成长记】完成注册和登录功能!!


之前已经完成了登陆和注册界面UI的设计与编写,今天终于把这两项的功能完成了:

1、注册

其实说麻烦也不麻烦,LeanCloud的API已经把所有的后台代码写好了,我们只需要完成对API的调用即可。这里用到的是AVUser这个类的调用,来看代码:

//请求验证码
//保存注册信息到云端
AVUser user = new AVUser();
user.setPassword(passwordEText.getText().toString());
user.setMobilePhoneNumber(phoneEText.getText().toString());
user.setUsername(phoneEText.getText().toString());
user.signUpInBackground(new SignUpCallback() {
@Override
public void done(AVException e) {
if (e == null) {
Toast.makeText(RegisterActivity.this, "验证码已发送,请稍等", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(RegisterActivity.this, "请求超时,请重试", Toast.LENGTH_LONG).show();
}
}
});


 

可以看到,先实例化一个AVUser的对象,将注册的用户名、手机号和密码全部保存到这个对象。

保存完毕后,调用signUpInBackground(SignUpCallback callback)方法,完成注册。这里注册信息其实都保存在LeanCloud服务器上,而服务器收到这些信息会自动向运营商发送验证码的请求,运营商收到请求后发送验证码给你,你再将验证码返回进行验证,完成一套注册流程。

官网文档对这一过程的演示是这样的。

5

再来看验证验证码的过程:

//验证验证码
AVUser.verifyMobilePhoneInBackground(authcodeEText.getText().toString(), new AVMobilePhoneVerifyCallback() {
@Override
public void done(AVException e) {
if (e == null) {
//提示对话框
AlertDialog.Builder dialog = new AlertDialog.Builder(RegisterActivity.this);
dialog.setTitle("提示");
dialog.setIcon(R.drawable.question);
dialog.setMessage("注册成功!是否返回登录?");
dialog.setPositiveButton("是", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent();
intent.setClass(RegisterActivity.this, WelcomeActivity.class);
RegisterActivity.this.startActivity(intent);
}
});
dialog.setNegativeButton("否", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(RegisterActivity.this, "注册成功为什么不登陆", Toast.LENGTH_SHORT).show();
}
});
dialog.create().show();
} else {
Toast.makeText(RegisterActivity.this, "请求超时,请重试", Toast.LENGTH_LONG).show();
}
}
});

 

这里调用的是void verifyMobilePhoneInBackground(String verifyCode, AVMobilePhoneVerifyCallback callback)这个方法,我们看到参数是一个String类型的验证码,将验证码传递进去后,判断验证码是否匹配,这里我设置了匹配成功则弹出对话框。

 

注意这个地方,官方文档里面是这样说的云端发送手机验证码,并且返回注册成功,但是此时用户的 mobilePhoneVerified依然是 false,客户端需要引导用户去输入验证码。验证之后 mobilePhoneVerified就会被置为 true。

而在这个APP注册过程中,我设置了点击获取验证码的Button就已经提交了注册信息,但是此时的mobilePhoneVerifiedfalse之后我点击登陆Button的时候才是验证码的匹配,匹配成功后mobilePhoneVerifiedtrue.

进入LeanCloud后台可以看到我的注册信息:

4

2、登录

相比较注册,登录就简单多了,用到的是logInInBackground(String username, String password, LogInCallback<AVUser> callback)方法,方法需要的参数是用户名和密码,也就是我们输入的内容,由于登陆后的UI还没有完成,登陆成功的话只是显示一个Toast。

AVUser.logInInBackground(usernameText.getText().toString(), passwordText.getText().toString(), new LogInCallback() {
@Override
public void done(AVUser avUser, AVException e) {
if (e == null) {
Toast.makeText(WelcomeActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(WelcomeActivity.this, "登录失败", Toast.LENGTH_SHORT).show();
}
}
});

 

 

 

 

 

 

 

虽然今天做的功能不多,但是也是蛮有成就感的。

 

接下来最大的任务就是完成对天气主界面UI的设计,加油吧!

声明:XiaRui's Zone|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 【WeWeather成长记】完成注册和登录功能!!


在能驾驭的领域 做个自由的行者