微信小程序工具細節(jié)點
javascript && wxss
微信小程序運行在三端:iOS、Android 和 用于調試的開發(fā)者工具。
三端的腳本執(zhí)行環(huán)境聚以及用于渲染非原生組件的環(huán)境是各不相同的:
- 在 iOS 上,小程序的 javascript 代碼是運行在 JavaScriptCore 中,是由 WKWebView 來渲染的,環(huán)境有 iOS8、iOS9、iOS10
- 在 Android 上,小程序的 javascript 代碼是通過 X5 JSCore來解析,是由 X5 基于 Mobile Chrome 37 內核來渲染的
- 在 開發(fā)工具上, 小程序的 javascript 代碼是運行在 nwjs 中,是由 Chrome Webview 來渲染的
盡管三端的環(huán)境是十分相似的,但是還是有些許區(qū)別:
ES6
語法支持不一致語法上開發(fā)者可以通過開啟ES6
轉ES5
的功能來規(guī)避。詳情ES6
API 支持不一致考慮到代碼包大小的限制,API 上目前需要開發(fā)者自行引入相關的類庫來進行處理,可以通過 caniuse 或者 X5兼容 查詢到相關 API 的支持情況wxss
渲染表現不一致盡管可以通過開啟樣式補全來規(guī)避大部分的問題 詳情,還是建議開發(fā)者需要在 iOS 和 Android 上檢查小程序的真實表現。
掃碼接口的調試
同手機端直接調用攝像頭來掃碼不同,在 PC 或者 Mac 上調用攝像頭來掃碼完成調試是一個低效的行為,所以在開發(fā)工具上調用二維碼掃碼 API 后,開發(fā)者可以選擇一個本地的圖片來進行后續(xù)的邏輯調試,而不是真正的啟用攝像頭來掃碼,流程有所不同,但是接口的輸入和輸出是一致的。
微信支付的調試
最新版本的開發(fā)者工具已經支持微信支付的調試,但是為了兼顧到安全,同手機上直接調用微信支付有所不同。
- 新綁定的開發(fā)者需要 24 小時后才有權限進行微信支付的調試
- 開發(fā)者在工具上調用微信支付的 API 后,開發(fā)工具會出現一個二維碼,開發(fā)者必須使用當前開發(fā)所使用的微信號掃碼后在手機上完成支付的流程
- 工具會同步移動端微信支付的回包到工具中,開發(fā)者自行進行后續(xù)的操作
分享的調試
- 開發(fā)者工具上調用分享是一個模擬的行為,并不會真實的分享給用戶,開發(fā)可以通過這個模擬行為判斷是否正確的調用了分享 API
- 在工具上編譯小程序之前開發(fā)者可以設置啟動的頁面和參數,用于幫助調試被分享者打開小程序并定位到相關頁面的場景
- 在提交預覽的時候,開發(fā)者也可以設置啟動頁面和參數,用于幫助調試移動端的真實表現
客戶端可信域名校驗
開發(fā)者使用手機掃碼調試的場景下,打開調試模式之后,最新版的客戶端將不檢查可信域名。
客戶端可信域名校驗
開發(fā)者使用手機掃碼調試的場景下,打開調試模式之后,最新版的客戶端將不檢查可信域名。
客戶端可信域名校驗
開發(fā)者使用手機掃碼調試的場景下,打開調試模式之后,最新版的客戶端將不檢查可信域名。
代碼文件必須 UTF8 編碼
iOS下僅支持 UTF8 編碼格式,最新版本的開發(fā)者工具會在上傳代碼時候對代碼文件做一次編碼格式校驗。
ES6 APi 支持情況
在 6.5.3 以及之前版本的微信中,小程序的 ES6 API 支持情況如下:
tip
: TBS 2.0 TBS 3.0 是 X5 內核版本tip
: 微信會在2017年2月之前完成 TBS 3.0 內核全量升級