ios輸入框被軟鍵盤遮住問題

在ios中,輸入框被軟鍵盤遮住,這是衆所周知的bug,那麼如何來解決這個問題呢?最近的項目中就遇到了這個問題,然後經過高人指點解決了這個問題,以及遇到的另外一些問題。
首先我們先來說說彈出軟鍵盤,在ios中,彈出軟鍵盤,會將整個頁面給懟上去,因此我們只能看到半個頁面,然而在andriod中,整個網頁高度會縮小,因此我們在彈出軟鍵盤時,能夠監聽到andriod的窗口大小變化——resize事件,但是ios中,resize事件卻沒有發生,因爲窗口大小沒有發生變化。
ios中彈出軟鍵盤後,有時會遮住我們定位在底部的輸入框,最近的項目中就遇到了各種ios的坑,哎!
html代碼如下:

<div class="bottomInput">
    <input id="msgdata" type="text"></input>
    <button id="btn" class="wxapp-add-btn" >發送</button>
</div>

js代碼如下:

var interval;
function scrollToEnd(){
    document.body.scrollTop = document.body.scrollHeight;
}
$("#msgdata").on("focus",function (e) {
    interval = setInterval(function() {
        scrollToEnd();
    }, 500)
})
$("#msgdata").on("blur",function (e) {
    clearInterval(interval);
})
$("#btn").on("touchend",function (e) {
    e.preventDefault();
    alert("消息發送");
})

經過測試,iphone 6s是可行的,後來在6s plus中卻遇到問題,如果是使用系統自帶的輸入法,輸入英文是沒問題的,但是輸入中文卻遇到了bug。輸入中文,點擊發送不能執行,軟鍵盤收回,再次點擊發送才能執行發送事件。而且還發現點擊輸入框,獲得焦點,再點擊輸入框會失去焦點,遇到這個問題,就尷尬了!後來又拿了別的6s plus來測試,在另一臺手機上發現,能夠輸入中文啊,經過對比發現,兩個手機的輸入法不同,正常點擊發送的手機的輸入法是第三方輸入法。
那麼問題就出現在這裏了,蘋果自帶輸入法對中文的一個支持問題。怎麼辦呢?用第三方輸入法吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章