小序

由小米mix首发,紧接着全面屏时代来临,本人是米粉入手小米mix2,用户体验贼拉好,渐渐的全面屏手机漫步市场... (跑题了)

在做公众号时,用全民屏手机发现了一个问题,当时定位问题就花费了三天时间,各种调试,最后终于定位问题,并解决。过程如下:

android 全面屏系统滑动条 全面屏上滑失灵_虚拟键盘

问题解析

在移动端时点击input框,调起键盘弹出,此时!!!出问题了

使用chrome调试注意观察可视窗口的大小

还未点击时

android 全面屏系统滑动条 全面屏上滑失灵_android 全面屏系统滑动条_02

唤起输入法软键盘

android 全面屏系统滑动条 全面屏上滑失灵_公众号_03

 

放开软键盘

android 全面屏系统滑动条 全面屏上滑失灵_公众号_04

放开后可视窗变大, 造成的问题

1. 下拉到底分页阻塞无法运行

2. 弹出框的位置

3. 整体页面定位错位

解决问题

在使用正常安卓手机时 不会出现这种问题

现在全面屏来临对全面屏也会有兼容问题

用小米mix2 将虚拟键盘隐藏 在进行项目时 输入input框调起软键盘 这时虚拟键盘会出现

并 将你整个可视窗口撑大 然后你对这种问题进行定位

1. 手机需要有虚拟键盘

2. 将手机的虚拟键盘隐藏

3. 虚拟键盘唤醒时是浮在窗口上 而不是顶到窗口下

4. 调起软键盘

5. 如果有个性手势操作则不会触发

极少数的手机会发生这种情况

android 全面屏系统滑动条 全面屏上滑失灵_软键盘_05

 

在将前面几项定位了之后

在进入项目时 将初始的可视窗口记录 使用sessionStroage存储

if (!sessionStorage.getItem('height')) {
    let height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight
    sessionStorage.setItem('height', Number(height))
}
// 使用resize监控页面可视窗口
window.onresize = function temp () {
    // 如果可视窗口大于咱们的初始值 那么 就是这种情况发生了 (一般不可能发生)进行弹框
    if (window.innerHeight > sessionStorage.getItem('height')) {
        alert('您是否隐藏虚拟键?隐藏虚拟键页面可能会出现界面布局,点击相应错位等问题, 非常抱歉, 如果不是请联系客服')
    }
}

因为发生的情况很少,但是还是尽量提高用户体验,所以选择这种解决办法。

困扰几天的问题,问题不大,仅记录

android 全面屏系统滑动条 全面屏上滑失灵_虚拟键盘_06