第一次用apicloud做正式项目 ,下面把做的过程中用到的代码段列出来。。。。都是从文档里复制的代码,只是感觉官网那个文档好难找哦。。。
注:api.????的方法都是在APP中调用才行的,$api.???方法是引入那个JS后就可以调用了
取普通文本框的值:var mobile = $api.val($api.byId('mobile'));
取单选框的值:var sex = $api.val($api.dom("input[name='sex']:checked"))
设置顶部header向下移:$api.fixStatusBar($api.dom('header')); (在自己手机上发现iphone7 ios11.2 是会把header向下移,不会盖着信号栏,header上下边距一样,但是在魅族mx2 android5.0.1 下还是会下移,信号栏本来不会盖着的,但是他下移后造成header上下边距不一样了)
判断用户是否登录需要用:
if($api.getStorage('userid') ==undefined ){
api.openWin({
name: 'login',
url: 'html/login.html'
});
}
而不能是
var userid = $api.getStorage('userid')
ifuserid==undefined){
...
}
AJAX调用前弹出加载中框框:
api.showProgress({
title: '努力加载中...',
text: '先喝杯茶...',
modal: true
});
AJAX调用:(注:AJAX调用的URL地址中不能有_, 要不然在安卓机子上会出问题,弄了一天了才发现这个BUG)
api.ajax({
url: url,
method: 'post',
data: {
values: postdata
}
},function(ret, err){
api.hideProgress();
if (ret) {
$api.setStorage('userid', ret.userid);
$api.setStorage('username', ret.username);
$api.setStorage('useremail', ret.useremail);
$api.setStorage('usermobile', ret.usermobile);
$api.setStorage('useralipay', ret.useralipay);
$api.setStorage('userweixin', ret.userweixin);
$api.setStorage('usersex', ret.usersex);
$api.setStorage('useridcard', ret.useridcard);
api.closeWin();
console.log("登录后返回的userid:"+ret.userid);
} else {
alert( JSON.stringify( err ) );
}
});
上拉加载和下拉刷新:
var pageindex = 1;
apiready = function() {
$api.fixStatusBar($api.dom('header'));
//上拉加载
api.addEventListener({
name: 'scrolltobottom',
extra: {
threshold: 0 //设置距离底部多少距离时触发,默认值为0,数字类型
}
}, function(ret, err) {
console.log("加载第" + (++pageindex) + "页");
});
//下拉刷新
api.setRefreshHeaderInfo({
loadingImg: 'widget://image/refresh.png',
bgColor: '#ccc',
textColor: '#fff',
textDown: '下拉刷新...',
textUp: '松开刷新...'
}, function(ret, err) {
//在这里从服务器加载数据,加载完成后调用api.refreshHeaderLoadDone()方法恢复组件到默认状态
api.refreshHeaderLoadDone();
});
}
顶部那个返回按钮对应的方法:
/**
*该方法用来返回页面
- **/
function comeBack() {
api.historyBack({}, function(ret, err) {
if (!ret.status) {
api.closeWin();
}
});
}