微信小程序筆記五:重新認識小程序

在小程序剛出來的時候,我寫過一些小程序的demo,而如今小程序已然成為一個非常活躍的平臺。小程序里面的內容包羅萬象之余,又有著H5所不具備的“性能優勢”。“能不能讓我們從頭來過”,重新認識小程序。小程序和快應用類似,只不過說,小程序面向的是微信平臺,支持ios和安卓。而快應用只支持安卓。出于用戶流量和兼容性的特點,快應用并不被看好。支付寶,百度小程序以及快應用都是同樣的實現原理。

小程序與PWA的異同點

相同點

  • 緩存機制
  • 原生接口(支付,定位等)

不同點

  • PWA支持接口緩存
  • 小程序沒有BOM和DOM,PWA本身就是網頁
  • 小程序屬于混合技術,PWA純網頁技術
  • 小程序限制太多, PWA沒有限制
  • 小程序需要部署在騰訊服務器,PWA和原來網站保持一致
  • 小程序兼容性較好,大家用的基本上是新版微信,PWA兼容性不好

小程序與weex的異同點

相同點

  • 同樣沒有BOM和DOM

不同點

  • 小程序部分多媒體組件是原生組件映射,weex全部是原生組件

更新機制

小程序運作機制有兩種,“冷啟動”和“熱啟動”。冷啟動即是進程已經結束,小程序完全重新啟動。熱啟動則是進程未被回收,打開上次的使用狀態。

更新機制會在冷啟動開啟過程中,同時檢測是否有新版本的內容,如果有,則異步下載新版本的代碼包,啟動該程序。即新版本的小程序需要等下一次冷啟動才會應用上。 這一點和PWA的機制類似。

caniuse

可以說現在小程序的發展真的是超出任何人的想象。小程序的四大平臺包括了騰訊,支付寶,百度和頭條。

小程序的四大平臺

各種新的功能層出不窮。說到新功能,就要考慮到兼容性的問題。雖然說微信版本的更新率很高,最新版本的小程序基礎庫可以達到89%,接近90%。所以一些有趣的新功能可以大膽考慮使用。如果你身在大廠或者二廠,肯定要考慮到如何兼容老微信的問題。

如果你是個謹慎的前端開發工程師,在使用瀏覽器新特性語法前,可能會有習慣去https://caniuse.com/查詢瀏覽器的兼容性,如果兼容性不能滿足你的要求,polyfill(墊片)是你需要考慮的內容。同理,騰訊也推出了一個API,叫做wx.canIUse。使用方法非常簡單,只需要傳個字符串。

使用API.method.param.options或者component.attribute.option方式來調用

  • API 代表 API 名字
  • method 代表調用方式,有效值為return, success, object, callback
  • param 代表參數或者返回值
  • options 代表參數的可選值
  • 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能區別判斷你的一些方法邏輯,做到一些兼容處理。當然,你也可以在小程序的后臺設置兼容的最低版本,這時候,一些舊版本的微信就無法顯示你的微信小程序并提示升級微信。你在這么做之前,要支會你的產品同時。

兼容性

兼容性問題主要出在基礎庫的版本問題,它是和微信的版本掛鉤的,有些剛出的api不建議使用。相信很多人還是會使用小游戲后的微信版本。

題外話

shopee,又稱蝦皮,是一家騰訊投資的跨境電商平臺。這里加班少,技術氛圍好。如果想和我并肩作戰一起學習,可以找我內推。郵箱weiping.xiang@shopee.com,非誠勿擾。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容