1.api.safeArea.top
通過safeArea能夠知道當前頁面哪些地方被遮住,從而做出相應的調整,保證頁面重要元素不被遮擋住。
比如應對頂部header被狀態欄遮住一部分,可以爲header增加一個paddingTop,如:
header.style.paddingTop = api.safeArea.top + 'px';
在比如在iPhone X上面,底部的導航菜單會被虛擬Home鍵遮住一部分,可以爲footer增加一個paddingBottom,如:
footer.style.paddingBottom = api.safeArea.bottom + 'px';
2.apiready
此事件是在api對象準備完畢後產生,在每個Window或Frame的HTML代碼中都需要監聽此事件,以確定APICloud擴展對象已經準備完畢,可以調用了。
window.apiready = function () {
};
//或者
window.apiready = () => {
};
3.keyback
設備 back 鍵被點擊事件,僅 Android 平臺有效,字符串類型
api.addEventListener({
name: 'keyback'
}, function(ret, err) {
alert('按了返回鍵');
});
//或者
// 監聽安卓返回按鈕
api.addEventListener({
name: "keyback",
}, () => {
this.save();
});
4.offline
監聽設備斷開網絡的事件,字符串類型
api.addEventListener({
name:'offline'
}, function(ret, err){
alert('斷網了');
});
//或者
api.addEventListener({
name: "offline",
}, () => {
api.toast({ msg: "網絡鏈接失敗" });
});
5.online
監聽設備連接到網絡的事件,字符串類型
api.addEventListener({
name:'online'
}, function(ret, err){
alert('已連接到網絡');
})
//實例
api.addEventListener({
name: "online",
}, (res) => {
const state = res.connectionType.toLowerCase(); // 當前網絡連接類型
let time;
let time2;
switch (state) {
case "wifi":
api.toast({ msg: "網絡鏈接成功" });
break;
case "4g":
api.toast({ msg: "網絡鏈接成功" });
break;
case "3g":
api.toast({ msg: "當前網速較慢 請檢查網絡" });
break;
case "2g":
api.toast({ msg: "當前網速不穩定 請檢查網絡" });
break;
default:
break;
}
});
6.longpress
Window 或者 Frame 的頁面全局長按事件,字符串類型
api.addEventListener({
name:'longpress'
}, function(ret, err){
alert('長按了頁面');
});
//實例
api.addEventListener({ // 測試是否長按了頁面
name: "longpress",
}, () => {
// 移除事件
api.removeEventListener({
name: "longpress",
});
});
7.viewappear
Window 顯示到屏幕的事件,字符串類型。收到 viewappear 事件回調,即標識當前 Window 已經動畫結束,並且完全顯示到屏幕上。該事件的作用對象爲 Window,Frame 的顯示不會收到事件
api.addEventListener({
name:'viewappear'
}, function(ret, err){
alert('window顯示');
});
//實例
/**
* 回到頁面顯示音頻
*/
api.addEventListener({
name: "viewappear",
}, () => {
this.audioInfo.showAudio = true;
});
8.keyboardshow
系統鍵盤彈出的回調,只支持iOS,字符串類型
api.addEventListener({
name:'keyboardshow'
},function(ret, err){
api.alert({
//ret.h鍵盤高度,數字類型
msg:ret.h
});
});
//實例
api.addEventListener({
name: "keyboardshow",
}, (ret) => {
// 如果高於輸入框,則不做考慮
if (api.frameHeight - this.popUpPos - this.headerHeight
- this.headerMarginTop - ret.h > 0) {
return;
}
api.setFrameAttr({
rect: {
y: this.popUpPos - ret.h,
},
});
});
9.keyboardhide
系統鍵盤隱藏的回調,只支持iOS,字符串類型
api.addEventListener({
name:'keyboardhide'
},function(ret, err){
api.alert({
msg:'鍵盤隱藏'
});
});
//或者
api.addEventListener({
name: "keyboardhide",
}, () => {
api.alert({
msg:'鍵盤隱藏'
});
});
},