美文网首页Android知识Android开发
【探坑】Bmob的云端逻辑

【探坑】Bmob的云端逻辑

作者: Xdjm | 来源:发表于2017-04-10 16:23 被阅读710次

昨天下载了Bmob官网云端逻辑的Demo,结果呢,代码不报错,客户端也没效果。好吧,我承认,不仅Demo过时了,官网介绍文档中的代码也TMD的过时了

放气
原因在于官方Demo用的sdk版本已过时
所以我打算重新探一遍坑,Go
第1步【新建工程,导入Bmob的sdk】
maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" }
compile 'cn.bmob.android:bmob-sdk:3.5.0'
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

多的不说老司机都懂

第2步【编写云端逻辑方法】

跳至Bmob项目的云逻辑处,添加方法,这里举例起名叫test,然后确定,在编写代码的区域内,清空原有代码,粘贴以下代码

编写云端逻辑方法
function onRequest(request, response, modules) {
  //获取SDK客户端上传的name参数
  var name = request.body.name;
    if(name == 'bmob')
      response.end('Hello,简书');
    else
      response.end('输入错误,请重新输入');
}                                                

Ok,代码解释一下,参照客户端请求的参数正确与否,实现返回字符串的功能,在线调试如下

云端逻辑在线调试
第3步【初始化Bmob,写入云端逻辑】

官网新建项目,设置里复制Appkey

Appkey

初始化

Bmob.initialize(this,"你的Appkey");

创建云端逻辑对象,并处理

//创建云端逻辑对象
AsyncCustomEndpoints ace = new AsyncCustomEndpoints();
//test对应你刚刚创建的云端逻辑名称
                String cloudCodeName = "test";
                JSONObject params = new JSONObject();
//name是上传到云端的参数名称,值是bmob,云端逻辑可以通过调用request.body.name获取这个值
                try {
                    params.put("name","bmob");
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                ace.callEndpoint(cloudCodeName, params, new CloudCodeListener() {
                    @Override
                    public void done(Object object, BmobException e) {
                        if (e == null) {
                            Toast.makeText(
                                    BmobCloudActivity.this
                                    ,object.toString()
                                    ,Toast.LENGTH_LONG).show();
                        } else {
                            Toast.makeText(
                                    BmobCloudActivity.this
                                    ,e.getMessage()
                                    ,Toast.LENGTH_LONG).show();
                        }
                    }
                });

重点是这句

ace.callEndpoint(cloudCodeName, params, new CloudCodeListener(){});
  • 第一个参数是云端的代码的方法名,即合云端相符的test

  • 第二个参数是传入的参数列表,即和云端相符的name对应的bmob值

  • 第三个参数是监听回调器,用e判断连接状况,做出响应

然后object.toString()就能得到云端response.end()中的内容
编译看看效果吧

当参数name对应值是bmob时的回调结果
当参数name对应值非bmob时的回调结果

【探坑到此结束】

嘿嘿嘿

相关文章

网友评论

    本文标题:【探坑】Bmob的云端逻辑

    本文链接:https://www.haomeiwen.com/subject/wtbsattx.html