微信內建瀏覽器WebApp開發,踩坑
最近花6天時間完成了一個七夕的小活動,是一個簡單的WebApp。由於我前期對面向微信的Web開發評估不足,導致開發過程十分艱難。寫這篇文章總結下,驚醒自己未來不要再犯這樣的錯誤。
問題:
1、 有些比較老舊的手機不支援多個觸點,可能是硬體不支援,也可能是軟體問題。這並不是微信的坑,對於這個問題其實我是早就遇到過的,心裡有底,也就不算問題了。
2、 手機上傳圖片會變橫,比如:豎著拍照上傳,圖片不是豎的,而變成橫的。這個也不是微信的問題,是因為我以前還沒在手機上做過圖片上傳,所以第一次遇見。
4、 一些Android手機,比如三星Note3,從SD卡中選擇圖片上傳,會提示“請選擇SD卡中的圖片”。我理解這個SD卡是指外接SD卡,直接從手機內建儲存中選擇圖片是可以上傳成功。
5、 Android4.4下<input type="file">
由於系統WebView的openFileChooser
介面更改,導致無法選擇檔案,從而導致無法上傳檔案。現在,大多數瀏覽器都修復了此BUG,但當前版本5.3的微信內建WebView並未修復。參考:https://code.google.com/p/android/issues/detail?id=62220
目前Android4.4版本系統佔比上升非常快,從目前監控資料來看,1個月內上升了2%,當前Android4.4總佔比超過5%,希望微信能儘快修復此BUG。
目前最新進展:Android 4.4.3+ 以上的版本已經修復了這個BUG。
6、 微信5分鐘自動清空一次快取。如果訪問的網頁5分鐘沒有任何動作的話,就會自動清空快取,我測試的快取包括:localStorage
、sessionStorage
。未測試ApplicationCache
和WebSQL
,暫時未知。
可以確認cookie不會被主動清除。如果將微信程序殺死,過期時間為session狀態的cookie會被清除。如果使用者主動退出微信登入,所有cookie都會被清除。
得到一些新的反饋:1、有小部分安卓機器cookie/localstorage都失效,目前微信那邊沒有好的解決方案;2、一般來說cookie + localstorage就能解決大部分問題。我現在使用了cookie + localstorage雙備份的策略。
在微信下,一切本地儲存的方式都是不靠譜的,唯一靠譜的是微信開發API,使用微信的使用者OpenID來跟蹤使用者。
http://www.maxzhang.com/2014/07/%E5%BE%AE%E4%BF%A1%E5%86%85%E7%BD%AE%E6%B5%8F%E8%A7%88%E5%99%A8WebApp%E5%BC%80%E5%8F%91%EF%BC%8C%E8%B8%A9%E5%9D%91/