h5開發:IOS開發與H5混合開發常見的坑
阿新 • • 發佈:2019-02-15
最近做 iOS H5 專案,需要針對 iOS 的 webView 做適配,發現幾個非常噁心的 bug。
因為現在據統計 iOS7 的佔比超過80%,所以適配主要針對 iOS7,但是 iOS7 不同版本缺有不同的 bug,真是讓人蛋疼。
iOS 7.0 input 元素聚焦問題
bug 演示
bug 分析
點選螢幕下方的input元素,且該元素在鍵盤彈起的區域內;當鍵盤彈起時,input 元素未獲得焦點,且 input 元素不在可視範圍內,沒有進行自動定位調整。
但 input 元素不在鍵盤彈起的區域內,當鍵盤彈起時,一切正常。
該 bug,iOS < 7.1 有問題,>=7.1 無問題。
解決辦法
辦法有點猥瑣,要通過 js,去強制 input 元素獲得焦點。
|
iOS 7.1 input 元素失焦問題
bug 演示
bug 分析
點選 input 元素(input 元素在不在浮層中不重要),彈出鍵盤時,當點選 Html 中的元素,致使 input 元素失去焦點,鍵盤收起,position:fixed 元素(演示中的浮層為 position:fixed)會導致介面錯亂。
但若點選鍵盤右上角的 完成
按鈕,鍵盤收起,一切正常。
也就是說,使用 iOS 系統的方式使得鍵盤收起,沒有問題;使用其他方式,使得鍵盤收起,position:fixed 元素會導致介面錯亂。
該 bug,iOS >= 7.1 有問題,< 7.1 無問題。當好和上一個 bug 的情況相反。
解決辦法
避免使用 position:fixed,換成 position:absolute 替代。