如果進入頁面輸入框自動聚焦,此時快速返回頁面或者跳轉到下一個頁面,輸入法頂上來的頁面出現半屏的黑屏問題。
輸入法出來后,設置了自動將頁面頂上來的配置:pages.json
"softinputMode": "adjustResize"
"globalStyle" : {"navigationBarTextStyle" : "black","navigationBarTitleText" : "uni-app","navigationBarBackgroundColor" : "#F8F8F8","backgroundColor" : "#F8F8F8","app-plus" : {"titleNView" : false,"softinputMode": "adjustResize"}// "disableScroll": true // 禁用舊版頁面緩存},
如果快速返回頁面,或者跳轉其他頁面,輸入法沒來得及收回,那么頂上去的頁面就會無法弄下來,所以我們需要手動處理一下。
先來個公共方法:main.js,主要是收起軟鍵盤。
Vue.prototype.$hideKeyboard = function(url){// console.log('收起軟鍵盤')setTimeout(()=>{uni.hideKeyboard(); // 收起軟鍵盤},50)
};
需要在每個頁面的onshow生命周期內調用。
onShow(){this.$hideKeyboard()},
其他處理方式
可以在滑動頁面時自動取消輸入法聚焦,這樣就不用設置頁面頂上去的功能。