1. 程式人生 > 其它 >小程式中佈局突然亂掉了,到底是怎麼個情況?

小程式中佈局突然亂掉了,到底是怎麼個情況?

就在上週,突然很多使用者反饋,都說小小簽到佈局亂掉了(線上有四款小程式都收到這樣的反饋,這裡我就不廣告了),經過客服反覆溝通,找到了佈局亂掉的必現條件:

1、IOS使用者較多,系統版本為8.X,很難升級(iPhone 5 & 5S);

2、部分頁面佈局亂掉,這些頁面都用到了flex佈局(反覆排查之後,懷疑跟flex佈局有關係);

3、之前使用正常,小程式新發布後就亂掉了;

4、最近釋出過新程式碼;

先看個截圖:

巧的是,微信web開發工具也在前不久從0.X版本升級到了1.X版本,整個UI改動比較大,這裡不細說~

出現這麼嚴重的問題,那肯定是先回滾程式碼,回滾後用戶那邊就顯示正常了,說明肯定是程式碼的問題。

對比程式碼之後,發現新程式碼中主要是添加了一些CSS3的動畫。難道是CSS3某些動畫不支援?索性就把動畫程式碼全部去掉,用5S測試機執行一下,依然亂碼。

然後把flex佈局修改成float實現,發現佈局正常,但是工作量太大,之前的程式碼中多列布局,全部用的flex實現。所以,繼續查詢問題~

兩次程式碼基本一樣,但提交後效果卻不一樣,為什麼?我開始懷疑是開發工具的問題了,因為開發工具從0.x突然升級到了1.X,整個改動很大,難道是提交的時候,程式碼壓縮的方式不對?或者我釋出程式碼的姿勢不對?

最終發現了問題,確實是開發工具裡面壓縮程式碼時,預設勾選專案發生了變化,預設情況下“上傳程式碼時樣式自動補全”並未選中,如下:

勾選這個選項後,再次釋出程式碼,佈局就正常了。

然後我又去網上查了一下flex佈局在ios 8.x上不相容的處理,大部分回覆都是說要新增字首:

display:-webkit-box;
display:-webkit-flex;
display:-ms-flexbox;
dispiay:flex;

之前用flex佈局,是因為文字寬度會根據內容多少而發生變化,這一點兒讓人特別不爽~

順便再說一個另一個同學提的問題:為什麼獲取手機號getPhoneNumber(OBJECT)API呼叫報錯?

凡是遇到這種問題,首先是看小程式官方文件,如果還解決不了,就去社群上查詢~

社群上已經有官方人員回覆了,獲取手機號功能,不對個人開發者開放,並且前端沒辦法直接拿到手機號,需要到服務端去解密。