微信小程序踩坑
本次開發微信小程序第一個版本,遇到如下問題:
關于小程序里引入iconfont
原有H5項目中iconfont.css里@font-face 引用的ttf等文件在小程序中不支持(小程序里請求資源都是https),
解決方法:知乎上有篇文章建議使用工具將ttf文件轉化為base64格式存儲在本地;
關于小程序里引入underscore
直接引入underscore會報錯,需要修改underscore源碼;
關于小程序里引用視頻和圖片url:
由于請求數據返回的圖片地址或者視頻地址通常不帶協議頭,都是例如下面的格式:
//files.iwjw.com/housecheckpc/2016/10/20/057e7f05b3684008b2d29a5217440842.s.iwjw
小程序里需要手動加入https協議頭,否則無法加載圖片或者視頻。
##關于小程序在真機預覽時IOS和安卓機樣式差別:
某些樣式在開發者工具、安卓真機、ios真機上,樣式有差距;同樣設置幾行文本,在IOS和安卓機上撐起來的高度是不一致的。開發者工具,ios,安卓上使用不同的內核,因此繪制頁面時,樣式差異較大。常常是ios樣式調整好了,在安卓上查看相差一像素,反之,在安卓上調整好了,Ios上相差一像素。
關于綁定事件,取數據時target與currentTarget的區別
注意event.target.dataset與event.currentTarget.dataset的區別:
target.dataset是取源組件上設置的數據集合,currentTarget.dataset是取當前組件上設置的數據集合。
關于將視頻嵌入到swiper組件
這里的應用場景是:
第一張是視頻,第二張往后是圖片。要求全部能輪播。在第一張時可以點擊按鈕播放視頻。
直接應用swiper組件存在的問題:IOS手機上播放視頻之后就不能繼續切換輪播圖片。安卓手機則可以。
嘗試了給video組件綁定事件、在video組件上添加按鈕切換圖片,但在小程序里都不能實現,按鈕設置高的z-index甚至不能懸浮于video組件上。
解決:修改交互邏輯,播放視頻采用dialog模式(視頻垂直居中,其余是蒙層),播放完畢回到圖片輪播模式。
關于小程序里上拉加載
列表頁上拉加載幾頁數據后,快速向上回滾,會出現白屏;暫時未解決。
關于無法獲取appservice
首次使用微信開發者工具時,如果打開了KX上網軟件,會報錯,提示無法獲取用戶信息,這時要先關掉KX上網軟件
總結小程序的那些限制:
-
并發request請求不能超過5個;
-
程序本身代碼資源文件大小限制在1MB 之內;
-
Page.prototype.setData單次設置的數據不能超過1024KB;
-
手機預覽時,盡量將微信客戶端升級到最新, 官網要求6.3.27及以上,測試安卓機微信版本6.3.31也是不能預覽的;后統一升級到6.5.3版本。
-
綁定開發者人數、體驗者人數也有限制;
-
請求里合法域名有個數限制;
-
頁面內跳轉不能超過5級;
總體而言,小程序開發上手比較簡單,但是由于多數使用封裝好的組件,或使用小程序提供的API,當出現bug時,不易定位,不易修改。
來自:https://segmentfault.com/a/1190000008063442