您的位置:首页 > 其它

基于Bmob的在线群聊之功能概述和注册登录功能

2017-07-03 21:27 330 查看
注意,该平台在学生阶段的使用免费功能是够用了的,所以不用担心价格。

一、项目实现的功能概述

1.首先要通过用户名邮箱和密码来进行注册,来获取进入应用的权限。可以设置只有通过邮箱激活才可以进行登录。

2.可以通过用户名或者邮箱密码来进行登录,如果登录过一次后,就可以实现像QQ一样不用每次都需要输入密码登录了,可以直接进入应用。

3.登录成功后可以选择已有群组进行聊天。

4.实现没有联网时可以查看聊天记录。

二、项目效果图(页面设计有点丑,别介意哈)

1.注册效果



2.登录效果



3.登录后的群聊页面效果



4.聊天效果图



三、准备工作

请到Bmob官网进行注册等一系列工作,然后查看快速开发的步骤,将相应的SDK下载好并复制到相应的工程位置。

注意:要使用文件发送也就是图片的话,就要下载新的demo,因为旧版不支持的,之前我就因为这样迟迟没有找到原因,使用新版的还要使用Android Studio开发工具,eclipse是不支持的。如果你不要求发送文件可以使用旧版的。这里我是使用新版本的。

备注:这里就不详细介绍怎么做准备工作了,官网的文档也十分详细。

这是旧版的Bmob的讲解视频密码:q5po,需要的可以拿走,我也是网上找到的。我认为看懂这个然后就慢慢摸着门路的。

四、实现注册的功能

准备工作完成后,我们就开始实现注册的功能吧。可能上面那一步会卡住如果是第一次接触Bmob的话,加油,坚持一下总会过去的。

如果你需要的用户的数据只是用户名,邮箱和密码,那就可以直接进行下一步操作了,因为Bomb默认的User_表已经有那几列了。

1.先说只要用户名,邮箱和密码的注册方法

private void register(){
String name = mName.getText().toString();
String email = mEmail.getText().toString();
String pass = mPass.getText().toString();
String pass2 = mPass2.getText().toString();
//对输入框的数据进行判断,只有符合要求才可以进行注册
if (TextUtils.isEmpty(name)) {
Toast.makeText(RegisterActivity.this, "用户名不能为空", Toast.LENGTH_LONG).show();
return;
}
if (TextUtils.isEmpty(email)) {
Toast.makeText(RegisterActivity.this, "邮箱地址不能为空", Toast.LENGTH_LONG).show();
return;
}
if (TextUtils.isEmpty(pass)) {
Toast.makeText(RegisterActivity.this, "密码不能为空", Toast.LENGTH_LONG).show();
return;
}
if (!pass2.equals(pass)) {
Toast.makeText(RegisterActivity.this, "两次输入的密码不同", Toast.LENGTH_LONG).show();
return;
}
//弹出加载的动画
final ProgressDialog progress = new ProgressDialog(RegisterActivity.this);
progress.setMessage("正在注册...");//动画的信息
progress.setCanceledOnTouchOutside(false);
progress.show();//显示动画
User user = new User();//这个是Bmob自带的User表
user.setUsername(name);//将输入的用户名保存到表的usernam的列
user.setPassword(pass);//将输入的密码保存到表的password的列
user.setEmail(email);//将输入的邮箱保存到表的email的列
//调用Bmob的注册方法User是你保存的表,user是你new的User的对象
user.signUp(new SaveListener<User>() {
@Override
public void done(User user, BmobException e) {
if(e == null){//注册成功
progress.dismiss();//将进度的动画取消
Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_LONG).show();//弹出吐司
BmobUser.logOut();//这里是退出登录
//这里是注册完成后跳转到登录的页面
Intent intent = new Intent(RegisterActivity.this,MainActivity.class);
startActivity(intent);
finish();
}else{//注册失败
Log.e(TAG, "done: ",e );
Toast.makeText(RegisterActivity.this, "注册失败", Toast.LENGTH_LONG).show();
progress.dismiss();
}
}
});
}


这里,如果有发邮件的,请到你的应用后台进行设置邮箱的信息。

注册成功后,你的后台的_User表会有你刚刚录入的信息。

2.要实现User添加其他列的用户表的实现

public class myUser extends BmobUser{//定义你自己的User表要继承BmobUser
private String path;//这是你要添加的列名
//添加get、set方法
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
}


要实现自己的用户表,我们只需要把上面的User改为myUser就可以了。

五、实现登录的功能

这是没有邮箱验证也可以登录的

private void submit() {
String name = mName.getText().toString();
String password = mPass.getText().toString();
if (TextUtils.isEmpty(name)) {
Toast.makeText(MainActivity.this, "邮箱不能为空", Toast.LENGTH_LONG).show();
return;
}
if (TextUtils.isEmpty(password)) {
Toast.makeText(MainActivity.this, "密码不能为空", Toast.LENGTH_LONG).show();
return;
}
final ProgressDialog progress = new ProgressDialog(MainActivity.this);
progress.setMessage("正在登陆...");
progress.setCanceledOnTouchOutside(false);
progress.show();
final BmobUser user = new BmobUser();//创建BmobUser对象
user.setUsername(name);//输入的用户名
user.setPassword(password);//输入的密码
//调用Bmob的登录方法
user.login(new SaveListener<BmobUser>() {
@Override
public void done(BmobUser bmobUser, BmobException e) {
if(e == null){//登录成功
progress.dismiss();
Toast.makeText(MainActivity.this, "登陆成功", Toast.LENGTH_LONG).show();
//登录成功后跳转到聊天列表页面
Intent intent = new Intent(MainActivity.this, FirstActivity.class);
startActivity(intent);
finish();
}else {
progress.dismiss();
Toast.makeText(MainActivity.this, "登录失败", Toast.LENGTH_LONG).show();
Log.e(TAG, "done: 失败", e);
}
}
});
}


第一次登录的时候要有邮箱验证的代码如下:

只需把if(e == null)里面的内容改为以下的代码即可

if (user.getEmailVerified()) {
Toast.makeText(MainActivity.this, "登陆成功", Toast.LENGTH_LONG).show();
Intent intent = new Intent(MainActivity.this, FirstActivity.class);
startActivity(intent);
finish();
} else {
BmobUser.logOut();   //清除缓存用户对象
Toast.makeText(MainActivity.this, "请在邮箱中激活账户", Toast.LENGTH_LONG).show();
}


如果有登录过的用户,就不用登录了

private void denglu() {
BmobUser user = BmobUser.getCurrentUser();
if(user != null) {
// 允许用户使用应用
Intent intent = new Intent(MainActivity.this, FirstActivity.class);
startActivity(intent);
finish();
}
}


到这里,就可以完成了注册和登录了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐