IOS微信瀏覽器點擊input元素無反應以及輸入框輸入後頁面不回彈的問題

1.最近在開發微信公衆號網頁,發現在iOS中,input元素快速點擊的時候無法獲得焦點,雙擊或者觸摸屏幕的時候才能獲取焦點。安卓端沒有問題。一開始以爲是iOS微信瀏覽器的兼容問題。後來認真排查了下,發現是我在引入ant-mobile組件庫時,同時引入了faskclick.js導致的。下面是ant-mobile官網的介紹:

然後我去ant-mobile github上看了下,發現了這個(參考https://github.com/ant-design/ant-design-mobile/issues/576):

因此把fastclick去掉就行了。

2.在輸入框獲取焦點,調出鍵盤,頁面被頂上去。輸入完成後,點完成,鍵盤收起,但是頁面不會回彈。可以這麼解決:

  isWeiXinAndIos() {
    const ua = `${window.navigator.userAgent.toLowerCase()}`;
    const isWeixin = /MicroMessenger/i.test(ua);
    const isIos = /\(i[^;]+;( U;)? CPU.+Mac OS X/i.test(ua);
    return isWeixin && isIos;
  }

  weChatInputBug() { // 解決微信鍵盤收起頁面不回彈的問題
    let myFunction;
    const isWXAndIos = this.isWeiXinAndIos();
    if (isWXAndIos) {
      document.body.addEventListener('focusin', () => {
        clearTimeout(myFunction);
      });
      document.body.addEventListener('focusout', () => {
        clearTimeout(myFunction);
        myFunction = setTimeout(() => {
          window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
        }, 200);
      });
    }
  }

 

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