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

来源:互联网 发布:java商城分销系统源码 编辑:程序博客网 时间:2024/05/21 20:22

注意,该平台在学生阶段的使用免费功能是够用了的,所以不用担心价格。

一、项目实现的功能概述

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

到这里,就可以完成了注册和登录了。

原创粉丝点击