apicloud 获取手机虚拟键盘高度

现在带虚拟键盘的手机越来越多,又成功的为前端开发者找了个事做。在使用apicloud开发APP中,如果有自定义原生模块的化,有的时候需要避免虚拟键盘带来的一系列体验问题。获取虚拟键盘高度经查阅官方文档及论坛都没有找到答案,只能亲自操刀了,其实计算也是非常简单的

在最开始我觉得计算的话应该要知道逻辑分辨率与物理分辨率的比例,可是查完了文档也没找到获取屏幕像素比(dpr)的方法,只能从有限的接口中找方法了。

apicloud窗口尺寸获取接口:

  1. api.screenWidth       //屏幕分辨率宽,数字类型
  2. api.screenHeight     //屏幕分辨率高,数字类型
  3. api.winWidth   //当前 window 宽度,数字类型
  4. api.winHeight  //当前 window 高度,数字类型

经过查看接口所返回的值后得知:

  • api.screenWidth 和 api.screenHeight 返回的是 物理像素分辨率。
  • api.winWidth 和 api.winHeight 返回的是 逻辑像素分辨率。

由上面的信息写出代码:

function getNavigationBarHeight(){
      var dpr=api.screenWidth/api.winWidth;
      var height=api.screenHeight/dpr-api.winHeight;
      height=height>Math.floor(height)?(Math.floor(height)+1):height;
      return (height>0?height:0);
}

当前项目所使用的效果,完美的解决问题,再也不怕系统操作按键被遮挡啦

 

作者:黄河爱浪 QQ:1846492969,邮箱:helang.love@qq.com

公众号:web-7258,本文原创,著作权归作者所有,转载请注明原链接及出处。

更多精彩文章,请扫下方二维码关注我的公众号

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值