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:'键盘隐藏'
    });
});
},

 

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐