微信公眾號之兼容性


現在主要負責移動端微信公眾號的開發。在開發過程中遇到了許多兼容性問題。前端框架是vue全家桶。

問題1: 

          當點擊輸入框式會彈出系統鍵盤, 鍵盤會將整個窗口向上頂,導致整個窗口變短,從而引起樣式,元素定位異常,非常不美觀。在取消鍵盤后Android中會恢復窗口大小, ios不會“滾回來”。

Android和ios表現類似,但原理不同。Android 中鍵盤彈出直接改變了視窗大小,ios是將整個視窗往上頂滾動一定大小。

          解決方法:(1) 由於ios中點擊鍵盤完成按鈕會觸發輸入框失去焦點事件, 那么統一封裝input, textarea組件, 讓其在失去焦點事件讓瀏覽器重繪即可。具體可參考http://www.cocoachina.com/ios/20181225/25941.html

                               (2)  Android中會恢復窗口大小,那么我們需要注意的就是鍵盤顯示時的異常情況。一方面我們要盡量避免使用高度100%,盡可能給定元素固定高度,這樣看起來就像是鍵盤將超出窗口部分正常遮蓋,並無異常。特別需要注意的就是絕對定位,固定定位的元素。在一些特殊情況下可以特殊處理, 比如監測窗口高度,在高度變化時做某些特殊操作來提高用戶體驗。可以參考 https://www.cnblogs.com/daniao11417/p/9208713.html

 

問題2: 微信瀏覽器中滾動問題

              在微信瀏覽器中, 使用原生滾動在移動端體驗較差。 出現滾動條, 滾動不連貫, -webkit-overflow-scrolling:touch卡死, 不能下拉刷新。

             解決: 使用transfrom:translate(x,y)來模擬滾動。better-scroll(https://www.npmjs.com/package/better-scroll) 解決了這個問題。在項目中將better-scroll二次封裝使用。當然,better-scroll還有點小坑,踩踩更健康。

問題3: 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM