如果进入页面输入框自动聚焦,此时快速返回页面或者跳转到下一个页面,输入法顶上来的页面出现半屏的黑屏问题。
输入法出来后,设置了自动将页面顶上来的配置:pages.json
"softinputMode": "adjustResize"
javascript
"globalStyle" : {
"navigationBarTextStyle" : "black",
"navigationBarTitleText" : "uni-app",
"navigationBarBackgroundColor" : "#F8F8F8",
"backgroundColor" : "#F8F8F8",
"app-plus" : {
"titleNView" : false,
"softinputMode": "adjustResize"
}
// "disableScroll": true // 禁用旧版页面缓存
},
如果快速返回页面,或者跳转其他页面,输入法没来得及收回,那么顶上去的页面就会无法弄下来,所以我们需要手动处理一下。
先来个公共方法:main.js,主要是收起软键盘。
javascript
Vue.prototype.$hideKeyboard = function(url){
// console.log('收起软键盘')
setTimeout(()=>{
uni.hideKeyboard(); // 收起软键盘
},50)
};
需要在每个页面的onshow生命周期内调用。
javascript
onShow(){
this.$hideKeyboard()
},
其他处理方式
可以在滑动页面时自动取消输入法聚焦,这样就不用设置页面顶上去的功能。