基于Bmob平台的账户登录、文件上传及下载逻辑的实现

最近有时间研究了一下Bmob平台的后台数据处理,确实是为应用开发者省去了许多麻烦,让不懂服务器开发的也可以做出棒棒的网络交互应用。

好记性不如烂笔头啊,代码备份一下~


BmobUser实现用户登录和注册:

注册和登录不需要自定义数据表,后台默认—User数据表来保存账户信息(用户名、密码、邮箱、手机)

登录逻辑:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private  void  login() {
         final  ProgressDialog progress =  new  ProgressDialog(MainActivity. this );
         progress.setMessage( "登录ing>->->" );
         progress.setCanceledOnTouchOutside( false );
         progress.show();
         BmobUser.loginByAccount( this "account" "password" new  LogInListener<Users>() {
             @Override
             public  void  done(Users users, BmobException e) {
                 progress.dismiss();
                 if  (e !=  null ){
                     Toast.makeText(MainActivity. this ,
                             "登录失败:code=" +e.getErrorCode()+
                             ",错误描述:" +e.getLocalizedMessage(), Toast.LENGTH_LONG).show();
                 } else {
                     Toast.makeText(MainActivity. this , "登录成功!" , Toast.LENGTH_LONG).show();
                 }
             }
         });
     }
注册逻辑:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
private  void  registerUser() {
         String account = et_account.getText().toString();
         String password = et_password.getText().toString();
         String confirmpassword = et_confirmpwd.getText().toString();
         if (TextUtils.isEmpty(account)){
             Toast.makeText(RegisterActivity. this "用户名不可为空" , Toast.LENGTH_SHORT).show();
             return ;
         }
         if (TextUtils.isEmpty(password)){
             Toast.makeText(RegisterActivity. this "密码不可以为空" , Toast.LENGTH_SHORT).show();
             return ;
         }
         if (!password.equals(confirmpassword)){
             Toast.makeText(RegisterActivity. this "密码不相同" , Toast.LENGTH_SHORT).show();
             return ;
         }
         final  ProgressDialog progress =  new  ProgressDialog(RegisterActivity. this );
         progress.setMessage( "注册ing>->->" );
         progress.setCanceledOnTouchOutside( false );
         progress.show();
         final  Users user =  new  Users();
         user.setUsername(account);
         user.setPassword(password);
         user.signUp( this new  SaveListener() {
             @Override
             public  void  onSuccess() {
                 progress.dismiss();
                 Toast.makeText(RegisterActivity. this , "成功啦" ,Toast.LENGTH_LONG).show();
                 Intent intent =  new  Intent(RegisterActivity. this ,MainActivity. class );
                 intent.putExtra( "from" , "login" );
                 startActivity(intent);
                 finish();
             }
 
             @Override
             public  void  onFailure( int  i, String s) {
                 Toast.makeText(RegisterActivity. this ,
                         "注册失败:code=" +i+ ",错误描述:" +s,Toast.LENGTH_LONG).show();
             }
         });
 
 
     }

文件上传及下载实现:

其中上传的文件可以在Bmob控制台-文件选项下进行查看,上传和下载的重点是:上传完成后在onSuccess中会返回所上传文件的url,下载时同样也是需要传入文件的下载地址url。一般在同时实现上传文件和其他类型数据时是先实现文件上传然后在在onSuccess中继续实现数据上传的逻辑,最好是在上传数据时将返回的url一起保存。

文件上传逻辑:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private  void  upload() {  
         File f =  new  File(Environment.getExternalStorageDirectory()+ "/image/test.jpg" );
         final  BmobFile file =  new  BmobFile(f);
         file.upload(MainActivity. this new  UploadFileListener() {  
               
             @Override  
             public  void  onSuccess() {  
                 // TODO Auto-generated method stub  
                 url = file.getUrl();
                 Toast.makeText(MainActivity. this "上传成功" , Toast.LENGTH_SHORT).show();  
             }  
 
             @Override  
             public  void  onFailure( int  arg0, String arg1) {  
                 // TODO Auto-generated method stub  
                 Toast.makeText(MainActivity. this "上传失败" +arg1, Toast.LENGTH_SHORT).show();                        
             }
          });  
     }
 
文件下载逻辑:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
private  void  downLoad(){
         new  Thread( new  Runnable() {  
             @Override  
             public  void  run() {  
                 // TODO Auto-generated method stub  
                 Looper.prepare();  
                  try  {  
                     Bitmap bitmap1= null ;  
                     URL myUrl;  
                     myUrl =  new  URL(url);  
                     HttpURLConnection conn=(HttpURLConnection)myUrl.openConnection();  
                     conn.setConnectTimeout( 5000 );  
                     conn.connect();  
                     InputStream is=conn.getInputStream();  
                     bitmap1=BitmapFactory.decodeStream(is);  
                     //把bitmap转成圆形  
                     BitmapUtil bmuUtil =  new  BitmapUtil(MainActivity. this );  
                     mBitmap = bmuUtil.toRoundBitmap(bitmap1);  
                     is.close();  
                     Message msg = mhandler.obtainMessage( 1 , mBitmap);  
                     mhandler.sendMessage(msg);  
                 catch  (MalformedURLException e) {  
                         // TODO Auto-generated catch block  
                         e.printStackTrace();  
                 catch  (IOException e) {  
                         // TODO Auto-generated catch block  
                         e.printStackTrace();  
                 }  
                  Looper.loop();  
             }  
         }).start();  
     }

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
针对校园APP的特点,文中分析了校园APP国内国外的研究背景以及意义,同时提出了当前校园APP存在的问题,结合本课题相关研究内容,对如何利用Bmob后端云等有关理论知识进行了详细的讲解。 本文结合当前流行的技术,以Android Studio为集成开发工具,当前很多的APP需要后端的支持来完成数据维护,而本文采用Bmob后端云来实现不用编写后端代码就能实现开发的一款校园APP,软件开发的后台管理需要提供最新的信息,包括图片,链接等等内容,管理数据库的人员甚至在不具备专业知识的情况下也可以在Bmob后端云的云数据库中进行维护,增删改查这些功能都能够实现实现了软件的无后端开发。采用免费开源且专注于灵活性和性能的Gradle自动化构建工具,为项目依赖的第三方库、为项目添加有用的默认设置和约定,节省了开发时间并减少了错误的发生,实现了快速开发。 依靠现有的移动通信网络,本文研究设计出了一种集浏览新闻、寻找兼职和浏览课表,失物招领和二手交易等多功能的面向广大学生的校园APP,学生可以在本APP上获取丰富的新闻信息,实时了解到各种重大新闻与校内的活动,编写了模拟爬取课程表的功能,从教务处获取课表,查看课表的详细信息。针对当前缺少兼职信息展示的现象,文中编写了兼职信息展示的功能,在有了通讯录之后,查找老师的联系方式也就更便捷,经过学号认证后,用户还可以在APP中修改个人基本资料。 本文经过系统需求分析、设计、编码实现等,在整个开发和维护的过程中,使用面向对象的Java语言,利用Android进行前端开发。将整个系统划分为小的模块进行分析设计后再进行集成,持续进行严谨的测试,给出了各个模块的类图,展示了系统实现的具体效果图,APP可以正确、快速的运行,基本满足了当前大学生的使用需求。
基于bmob的大学校园二手交易的微信小程序设计与实现,我们需要考虑以下几个方面。 首先,我们需要设计一个用户界面友好、操作简单的小程序。用户登录后可以浏览校园内的二手商品,也可以发布自己的闲置物品。通过bmob提供的数据库功能,我们可以实现用户商品信息的存储、查找和更新。 其次,我们需要实现一个搜索功能,让用户可以根据关键词搜索感兴趣的商品。同时也可以提供筛选条件,如价格范围、商品类型等,以便用户更快地找到合适的商品。 另外,我们还可以考虑引入用户之间的交流功能,让买家和卖家可以进行询问和协商。这样可以提高交易效率,减少信息不对称的情况。 为了保证交易安全,我们可以结合微信支付功能,实现线上支付和交易评价。买家可以选择与卖家线下交易,也可以通过线上支付完成交易,增加交易的便利性和安全性。 最后,我们可以通过bmob的数据分析功能,对用户的购买偏好和交易数据进行分析,为用户提供更加精准的推荐和个性化的服务。 总结来说,基于bmob的大学校园二手交易的微信小程序设计与实现,需要考虑用户界面设计、用户交互、商品搜索、交流功能、支付安全以及数据分析等方面。通过合理的设计和实现,可以为大学校园内的二手交易提供一个便捷、安全和高效的平台

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值