微信小程序目前是采用webview渲染的嗎?
是的,微信小程序運(yùn)行在三端:iOS、Android 和 用于調(diào)試的開發(fā)者工具。
三端的腳本執(zhí)行環(huán)境聚以及用于渲染非原生組件的環(huán)境是各不相同的:
在 iOS 上,小程序的 javascript 代碼是運(yùn)行在 JavaScriptCore 中,是由 WKWebView 來渲染的,環(huán)境有 iOS8、iOS9、iOS10在 Android 上,小程序的 javascript 代碼是通過 X5 JSCore來解析,是由 X5 基于 Mobile Chrome 37 內(nèi)核來渲染的在 開發(fā)工具上, 小程序的 javascript 代碼是運(yùn)行在 nwjs 中,是由 Chrome Webview 來渲染的盡管三端的環(huán)境是十分相似的,但是還是有些許區(qū)別:
語法支持不一致 語法上開發(fā)者可以通過開啟 轉(zhuǎn) 的功能來規(guī)避。詳情
API 支持不一致 考慮到代碼包大小的限制,API 上目前需要開發(fā)者自行引入相關(guān)的類庫(kù)來進(jìn)行處理,可以通過 caniuse 或者 X5兼容 查詢到相關(guān) API 的支持情況
渲染表現(xiàn)不一致 盡管可以通過開啟樣式補(bǔ)全來規(guī)避大部分的問題 詳情,還是建議開發(fā)者需要在 iOS 和 Android 上檢查小程序的真實(shí)表現(xiàn)。