網站首頁 個人範例 行業範例 行政範例 職場範例 校園範例 書信範例 生活範例 節日文化範例

前端頁面中微信iOS版長按識別二維碼有bug怎麼辦-解決方法

欄目: 職場充電 / 發佈於: / 人氣:3.05W

我相信很多在做微信開發的人都會遇到各種bug,而下面小編就給大家分享下前端頁面中微信iOS版長按識別二維碼bug的解決方法。

前端頁面中微信iOS版長按識別二維碼有bug怎麼辦-解決方法

發現問題

頁面做出來後測試,發現在安卓版微信能正常識別,但iOS 版微信(iPhone 或 iPad)皆無法正常識別。出來問題一開頭固然是懷疑自己的代碼有問題,上網搜索相關資料,嘗試以下方案均無法解決:

1、定位方式由absolute 改為傳統的margin(據説絕對定位會導致這個問題);

2、修改viewport 上的`maximum-scale大於1(網絡上看到的解決方案);

3、網絡上有説用position: fixed; 定位會導致這個問題,但這個頁面css 文件完全無fixed 這個單詞。

尋找原因

後來找有經驗的同事幫忙看下,發現可識別區域恰巧比正常地方稍微往上一點,而“比正常地方稍微往上一點”是多少呢?經過多次人工檢測,發現上文“比正常地方稍微往上一點”的高度正是微信標題欄+系統狀態欄的高度(64px)。

做了一個問題重現的頁面,地址如下(用iOS 微信6.2 掃描方可重現):

iOS 版微信6.2 中二維碼實際可識別區域為藍色框部分(請用第五個小指在邊緣區細心長按)。本人測試設備為iPad mini2+ iOS8.1 +微信,其他微信版本沒有測試;

基本上可以確定是iOS 版微信的本身問題,原因應該是微信客户端在識別二維碼的時候忽略了微信標題欄+系統狀態欄的高度,而這種bug 的促發貌似也是需要CSS 進行特殊定位的情況下才產生的(特別是absolute 絕對定位)。因為在微信實習的緣故,跟同事瞭解了下情況,這個bug 早在6.1 版本就出現了,他們有反饋過但到了6.2 都沒有修復。所以當前情況應該是先自行hack 下。

6月25日更新:經過與微信 iOS 開發人員的反饋溝通,確定是微信的 bug,據他們的説法目前已經修復,但能否在下一個版本中加入麼,就不得而知了。

解決方案

個人在做這個頁面時候採取的解決方案是通過將img 標籤增大padding 的方式來增大可點擊區域(為此padding-bottom 特長)來解決的。

6月25日更新:還有一種解決方法(如下圖),即為二維碼圖片本身增加透明底部背景(前端上訪客看不到),增加可接觸面積。