屏幕快照 2018-11-29 08.53.26.pngjavascript
注意:移動端和網頁端的頁面都用Safari瀏覽器打開java
屏幕快照 2018-11-29 09.30.59.pngios
使用方法就跟PC端的調試器相似git
IOS兼容性問題github
1.使用微信內置地圖查看位置接口openLocation,Android系統能正常打開地圖,IOS提示invalid coordinate
經緯度必須用浮點型,傳字符串會報錯,在地圖業務遇到的web
2.overflow:auto 滑動卡頓
這個比較常見,添加 -webkit-overflow-scrolling: touch; 編程
啓動硬件加速,因此滑動會變流暢。segmentfault
對於有-webkit-overflow-scrolling的網頁,會建立一個UIScrollView,提供子layer給渲染模塊使用。瀏覽器
3.移動端focus失效
https://segmentfault.com/q/10...微信
需求1:
在button的click裏,調用input.focus
this.$refs.btn.addEventListener('click',() => { this.$refs.inputDom.focus() })
需求2:
iOS是不支持你用js編程的方式調用focus的,若是沒有事件就不能聚焦
因此設置autofocus="autofocus"沒用;
直接在頁面加載時,調用input.focus()也沒有用,由於這屬於js編程的方式聚焦。
那麼,咱們想想,若是必需要觸發事件的話,咱們想需求1的作法同樣,在頁面加載時,直接調用btn.click。模擬用戶點擊button的行爲,來觸發input的聚焦行不行呢?
this.$refs.btn.addEventListener('click',() => { this.$refs.inputDom.focus() }) this.$refs.btn.click()
實踐的結果是不行,這是在三個平臺的表現狀況:
因此個人這邊的實踐結論是,若是但願在頁面初始化過程當中,讓input自動聚焦並彈出虛擬鍵盤。這個需求是無法是作的。 (寫出來是我的分享,若是我說的不對,必定留言哈,感謝)
4.移動端軟鍵盤,「換行」轉「搜索」
<form action="javascript:return true"> <input ref="inputDom" type="search" placeholder="搜索" v-model="searchValue" @keypress="keypress" /> </form>
須要用form包裹,而且設置action
直接設置type="search"的話,安卓能夠正常顯示,IOS沒有效果
5.iOS上的固定定位有bug
iOS上使用position:fixed可能有問題
我如今是避免使用fixed,有其餘佈局或者用absolute
6.iOS中input鍵盤事件keyup、keydown、keypress支持不是很好
用input監聽鍵盤keyup事件,在安卓手機瀏覽器中是能夠的,可是在ios手機瀏覽器中用輸入法輸入以後,並未馬上相應keyup事件,只有在經過刪除以後才能夠響應
這個我是經過換input事件來處理
7.點擊iOS上input框,不彈出虛擬鍵盤
若是僅僅是不彈出鍵盤的話
我這個需求是但願聚焦,同時不要彈出虛擬鍵盤。最後改用組件庫vant裏的組件來作了。
8.移動端點擊300ms延遲 和 移動端點透問題
低版本瀏覽器用faskclick就行,高版本瀏覽器取消300ms延遲了