ApiCloud开发app适配iPhone X以及华为机虚拟键盘的解决方法

ApiCloud 发表时间:2018-04-10 11:51:17 作者:梁子亮 浏览次数:789

一、iPhone X适配方法

顶部header被遮挡,找到api.js中的fixIos7Bar、fixStatusBar方法,用以下代码替换即可

u.fixIos7Bar = function(el){
    return u.fixStatusBar(el);
};
u.fixStatusBar = function(el){
    if(!u.isElement(el)){
        console.warn('$api.fixStatusBar Function need el param, el param must be DOM Element');
        return 0;
    }
    el.style.paddingTop = api.safeArea.top + 'px';
    return el.offsetHeight;
};

底部footer被虚拟home键遮挡,在api.js中添加一个fixTabBar方法如下

u.fixTabBar = function(el){
    if(!u.isElement(el)){
        console.warn('$api.fixTabBar Function need el param, el param must be DOM Element');
        return 0;
    }
    el.style.paddingBottom = api.safeArea.bottom + 'px';
    return el.offsetHeight;
}

在需要的地方(如$api.fixStatusBar(header);的下方)调用

$api.fixTabBar(footer); // 适配iPhone X

二、华为机虚拟键盘解决方案

控制openframe时的高度h以及marginBottom的值即可

api.openFrame({
    name: 'cart_frame',
    url: 'cart_frame.html',
    rect: {
        x: 0,
        y: $('#header').height(),
        w: 'auto',
        h: 'auto',
        marginLeft: 0,
        marginTop: 0,
        marginBottom: $('#footer').height(),
        marginRight: 0,
    },
    bounces: true
});


上一篇   composer安装和使用