APICloud常用的API事件

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:'鍵盤隱藏'
    });
});
},

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章