云端调用android函数,【探坑】Bmob的云端逻辑
昨天下载了Bmob官网云端逻辑的Demo,结果呢,代码不报错,客户端也没效果。好吧,我承认,不仅Demo过时了,官网介绍文档中的代码也TMD的过时了放气原因在于官方Demo用的sdk版本已过时所以我打算重新探一遍坑,Go第1步【新建工程,导入Bmob的sdk】maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" }com
昨天下载了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'
多的不说老司机都懂
第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时的回调结果
【探坑到此结束】
嘿嘿嘿
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)