第一次用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();
}
});
}