程序员一代码搬运工
【Java学习心得和Java学习技术个人总结】

uniapp中webview的软键盘覆盖到input

搞了好久

uniapp中webview的软键盘覆盖到input

打包成app的时候会出现这个问题, pc 不会

h5会出现

    onLoad() {
        var height=0;//定义动态的高度变量,如高度为定值,可以直接写
        uni.getSystemInfo({
            //成功获取的回调函数,返回值为系统信息
            success: (sysinfo) => {
                height = sysinfo.windowHeight;//自行修改,自己需要的高度 此处如底部有其他内容,可以直接---(-50)这种
            },
            complete: () => {
            }
        });
        var currentWebview = this.$scope.$getAppWebview();//获取当前web-view
        setTimeout(function() {
            var wv = currentWebview.children()[0];
            wv.setStyle({//设置web-view距离顶部的距离以及自己的高度,单位为px
                 top: 20,//此处是距离顶部的高度,应该是你页面的头部
                bottom:0,//防止输入框被软键盘遮挡
                height:height-20,//webview的高度
                scalable:true,//webview的页面是否可以缩放,双指放大缩小
                // titleNView:{//加上返回header
                // 	autoBackButton:true,
                // 	titleText:'在线客服',
                // }
            })
            // wx.setTitleNViewButtonStyle({
            // 	index:0,
            // 	styles:{
            // 		type:'back'
            // 	}
            // 	}
            // })
        }, 100);//如页面初始化调用需要写延迟
        
        uni.onWindowResize((res) => {
                if(res.size.windowHeight < height){
                    //高度缩小
                    setTimeout(function() {
                        var wv = currentWebview.children()[0];
                        wv.setStyle({//设置web-view距离顶部的距离以及自己的高度,单位为px
                             top: 20,//此处是距离顶部的高度,应该是你页面的头部
                            bottom:0,//防止输入框被软键盘遮挡
                            height:height-300,//webview的高度
                            scalable:true,//webview的页面是否可以缩放,双指放大缩小
                            // titleNView:{//加上返回header
                            // 	autoBackButton:true,
                            // 	titleText:'在线客服',
                            // }
                        })
                        // wx.setTitleNViewButtonStyle({
                        // 	index:0,
                        // 	styles:{
                        // 		type:'back'
                        // 	}
                        // })
                    }, 100);//如页面初始化调用需要写延迟
                    
                }else{
                    //还原
                    setTimeout(function() {
                        var wv = currentWebview.children()[0];
                        wv.setStyle({//设置web-view距离顶部的距离以及自己的高度,单位为px
                             top: 20,//此处是距离顶部的高度,应该是你页面的头部
                            bottom:0,//防止输入框被软键盘遮挡
                            height:height-20,//webview的高度
                            scalable:true,//webview的页面是否可以缩放,双指放大缩小
                            // titleNView:{//加上返回header
                            // 	autoBackButton:true,
                            // 	titleText:'在线客服',
                            // }
                        })
                        // wx.setTitleNViewButtonStyle({
                        // 	index:0,
                        // 	styles:{
                        // 		type:'back'
                        // 	}
                        // })
                    }, 100);//如页面初始化调用需要写延迟
                }
            })
  },

<web-view :src=”url” v-show=”chatflag”></web-view>

 

 

赞(0)
未经允许不得转载:程序员一代码搬运工 » uniapp中webview的软键盘覆盖到input
分享到: 更多 (0)