摘要:混合開發軟鍵盤適配方案現象當前端界面的輸入框位于頁面底部,鍵盤喚醒時,就會遮擋輸入框。當鍵盤喚醒時,將整個向上擠壓,頁面向上擠壓的高度為鍵盤的高度。本以為這個方案是最完美的。可是發現和不生效。采取以上的實現方式。
? 當前端界面的輸入框位于頁面底部,鍵盤喚醒時,就會遮擋輸入框。此時用戶在輸入時就不能看到已經輸入的內容,造成很不好的用戶體驗。
思路分析:? 原生鍵盤的喚醒方式大概分為兩種,一種是平鋪在頁面上,和頁面不屬于同一層級;另一種是鍵盤喚醒時將頁面向上擠壓,使其位于同一層級。這里我們采用第二種方案。當鍵盤喚醒時,將整個webview向上擠壓,頁面向上擠壓的高度為鍵盤的高度。此時預想的結果是實現qq微信發送消息的效果。
實現方式:android代碼:
cordova.getActivity().runOnUiThread(new Runnable() { @Override public void run() { cordova.getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); callbackContext.success(); } });
在這里前端不需要做處理。本以為這個方案是最完美的。可是發現ios11.1和ios11.2不生效。這就很頭疼了。為了適配ios,不得不想新的解決思路。
改變思路:? 綜合考慮了android和ios的版本問題,這里我們采用不同系統采用不同處理方式的方案。通過前端判斷設備類型,在輸入框獲取焦點的時候,進行下一步處理。android采取以上的實現方式。ios就采取下面要說的這種方式。
ios實現方式:? 根據ios的特性,我們采取前端處理的方式來實現。當前端獲取到焦點時,將整個body向上推。類型于第一種方式,只不過是前端來處理。
前端代碼:
var scrollTime; var timerId; if(typeof (device)!="undefined"&&device.platform=="iOS"){ let num = 0; scrollTime = setInterval(function(){ timerId = true; if (num < 9) { num++; } else { clearInterval(scrollTime); timerId = null; document.body.scrollTop = document.body.scrollHeight; return; } document.body.scrollTop = document.body.scrollHeight; },100) }
下面來講一下原理:
在獲取焦點時,執行以上代碼。因為鍵盤彈起有一個延遲,我們在這里寫了一個定時器,來實現這個過度。就能實現類似于qq微信的效果了。
這里需要注意的是,在失去焦點的時候,我們要清除這個定時器。再執行
document.body.scrollTop = document.body.scrollHeight;
達到完美過度的效果。當然,想實現順滑的效果,還是用原生寫吧。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/104005.html
摘要:代碼調試去除的,給添加一個正好能讓軟鍵盤彈出后遮住輸入框的高度,高度軟鍵盤出現后高度輸入框高度保存按鈕高度,發現鍵盤彈出遮擋著后,框會自動上移到可視區內,問題定位成功。 Android軟鍵盤彈出,覆蓋h5頁面輸入框問題 移動端開發過程中,我們經常遇到h5表單錄入頁面,在Android系統webview中,由于軟鍵盤彈出,導致覆蓋 h5頁面輸入框問題,在此進行回顧并分享給大家 系統:An...
摘要:代碼調試去除的,給添加一個正好能讓軟鍵盤彈出后遮住輸入框的高度,高度軟鍵盤出現后高度輸入框高度保存按鈕高度,發現鍵盤彈出遮擋著后,框會自動上移到可視區內,問題定位成功。 Android軟鍵盤彈出,覆蓋h5頁面輸入框問題 移動端開發過程中,我們經常遇到h5表單錄入頁面,在Android系統webview中,由于軟鍵盤彈出,導致覆蓋 h5頁面輸入框問題,在此進行回顧并分享給大家 系統:An...
摘要:代碼調試去除的,給添加一個正好能讓軟鍵盤彈出后遮住輸入框的高度,高度軟鍵盤出現后高度輸入框高度保存按鈕高度,發現鍵盤彈出遮擋著后,框會自動上移到可視區內,問題定位成功。 Android軟鍵盤彈出,覆蓋h5頁面輸入框問題 移動端開發過程中,我們經常遇到h5表單錄入頁面,在Android系統webview中,由于軟鍵盤彈出,導致覆蓋 h5頁面輸入框問題,在此進行回顧并分享給大家 系統:An...
閱讀 1718·2021-10-18 13:34
閱讀 3906·2021-09-08 10:42
閱讀 1551·2021-09-02 09:56
閱讀 1606·2019-08-30 15:54
閱讀 3127·2019-08-29 18:44
閱讀 3298·2019-08-26 18:37
閱讀 2212·2019-08-26 12:13
閱讀 453·2019-08-26 10:20