部分安卓机键盘弹起导致页面空白问题

本文介绍了一种解决特定安卓设备(如 OnePlus 7 Pro)在应用重新获得焦点时丢失输入焦点的技术方案。通过监听页面可见性变化并触发虚拟输入事件来确保输入状态的正确恢复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景:部分安卓机(例如one plus 7 pro)

 

解决方案:

<script>
  export default {
      data(){
        return {
          visibleChangeObject: null
        }
      },
  		mounted(){
        this.visibleChangeObject = this.visibleChange();
        this.visibleChangeObject.add();
    	},
    	beforeDestroy() {
          this.visibleChangeObject && this.visibleChangeObject.remove();
      },
      methods: {
            visibleChange() {
                const handleVisibilityChange = () => {
                    // if (document.visibilityState  == 'hidden') { //隐藏界面
                    // }
                    if (document.visibilityState  == 'visible') { //重新打开界面
                        if( isAndroid ) {
                            const currentInput = document.createElement("input");
                            document.body.appendChild(currentInput);
                            currentInput.select();
                            document.body.removeChild(currentInput);
                        }
                    }
                };
                return {
                    add: () => document.addEventListener('visibilitychange', handleVisibilityChange, false),
                    remove: () => document.removeEventListener('visibilitychange', handleVisibilityChange, false),
                };
            }
      }
  }
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值