在小程序剛出來的時候狭魂,我寫過一些小程序的demo,而如今小程序已然成為一個非车趁伲活躍的平臺雌澄。小程序里面的內容包羅萬象之余,又有著H5所不具備的“性能優(yōu)勢”杯瞻「湮“能不能讓我們從頭來過”,重新認識小程序魁莉。小程序和快應用類似睬涧,只不過說募胃,小程序面向的是微信平臺,支持ios和安卓畦浓。而快應用只支持安卓痹束。出于用戶流量和兼容性的特點,快應用并不被看好讶请。支付寶祷嘶,百度小程序以及快應用都是同樣的實現(xiàn)原理。
小程序與PWA的異同點
相同點
- 緩存機制
- 原生接口(支付夺溢,定位等)
不同點
- PWA支持接口緩存
- 小程序沒有BOM和DOM论巍,PWA本身就是網頁
- 小程序屬于混合技術,PWA純網頁技術
- 小程序限制太多企垦, PWA沒有限制
- 小程序需要部署在騰訊服務器环壤,PWA和原來網站保持一致
- 小程序兼容性較好,大家用的基本上是新版微信钞诡,PWA兼容性不好
小程序與weex的異同點
相同點
- 同樣沒有BOM和DOM
不同點
- 小程序部分多媒體組件是原生組件映射郑现,weex全部是原生組件
更新機制
小程序運作機制有兩種,“冷啟動”和“熱啟動”荧降。冷啟動即是進程已經結束接箫,小程序完全重新啟動。熱啟動則是進程未被回收朵诫,打開上次的使用狀態(tài)辛友。
更新機制會在冷啟動開啟過程中,同時檢測是否有新版本的內容剪返,如果有废累,則異步下載新版本的代碼包,啟動該程序脱盲。即新版本的小程序需要等下一次冷啟動才會應用上邑滨。 這一點和PWA的機制類似。
caniuse
可以說現(xiàn)在小程序的發(fā)展真的是超出任何人的想象钱反。小程序的四大平臺包括了騰訊掖看,支付寶,百度和頭條面哥。
各種新的功能層出不窮哎壳。說到新功能,就要考慮到兼容性的問題尚卫。雖然說微信版本的更新率很高归榕,最新版本的小程序基礎庫可以達到89%,接近90%焕毫。所以一些有趣的新功能可以大膽考慮使用蹲坷。如果你身在大廠或者二廠驶乾,肯定要考慮到如何兼容老微信的問題。
如果你是個謹慎的前端開發(fā)工程師循签,在使用瀏覽器新特性語法前级乐,可能會有習慣去https://caniuse.com/
查詢?yōu)g覽器的兼容性,如果兼容性不能滿足你的要求县匠,polyfill(墊片)是你需要考慮的內容风科。同理,騰訊也推出了一個API乞旦,叫做wx.canIUse
贼穆。使用方法非常簡單,只需要傳個字符串兰粉。
使用
API
.method
.param
.options
或者component
.attribute
.option
方式來調用
-
API
代表 API 名字 -
method
代表調用方式故痊,有效值為return, success, object, callback -
param
代表參數(shù)或者返回值 -
options
代表參數(shù)的可選值 -
component
代表組件名字 -
attribute
代表組件屬性 -
option
代表組件屬性的可選值
例如:
wx.canIUse('openBluetoothAdapter')
wx.canIUse('getSystemInfoSync.return.screenWidth')
wx.canIUse('getSystemInfo.success.screenWidth')
wx.canIUse('showToast.object.image')
wx.canIUse('onCompassChange.callback.direction')
wx.canIUse('request.object.method.GET')
wx.canIUse('live-player')
wx.canIUse('text.selectable')
wx.canIUse('button.open-type.contact')
wx.canIUse
能區(qū)別判斷你的一些方法邏輯,做到一些兼容處理玖姑。當然愕秫,你也可以在小程序的后臺設置兼容的最低版本,這時候焰络,一些舊版本的微信就無法顯示你的微信小程序并提示升級微信戴甩。你在這么做之前,要支會你的產品同時闪彼。
兼容性
兼容性問題主要出在基礎庫的版本問題甜孤,它是和微信的版本掛鉤的,有些剛出的api不建議使用畏腕。相信很多人還是會使用小游戲后的微信版本缴川。
題外話
shopee,又稱蝦皮描馅,是一家騰訊投資的跨境電商平臺二跋。這里加班少,技術氛圍好流昏。如果想和我并肩作戰(zhàn)一起學習,可以找我內推吞获。郵箱weiping.xiang@shopee.com况凉,非誠勿擾。