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

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

一、项目实现的功能概述

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值