1. 發(fā)布為小程序
2. 各家小程序?qū)崿F(xiàn)機制不同勇垛,可能存在的平臺兼容問題
(1) 瀏覽器內(nèi)核差異
各家小程序的瀏覽器內(nèi)核不同,可能會造成css兼容性問題
喜爷,更多細節(jié)參考:關(guān)于手機webview內(nèi)核荧止、默認(rèn)瀏覽器鸟雏、各家小程序的渲染層瀏覽器的區(qū)別和兼容性
各小程序平臺的webview內(nèi)核說明
- 各家小程序物臂,在iOS上大多使用的是wkwebview內(nèi)核瘟滨,已知僅百度小程序是uiwebview锯蛀。wkwebview是iOS的一部分遇西,其版本根據(jù)iOS版本的不同而不同猎醇。可以在caniuse直接看到iOS版本對應(yīng)的瀏覽器兼容問題努溃。
- Android上各家小程序使用的是基于chromium改造的瀏覽器內(nèi)核硫嘶。具體如下:
- 微信:老版微信使用的是x5,ua特征字符串有Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044903梧税;后來微信團隊自研了MWEB內(nèi)核沦疾,ua特征字符串有Chrome/67.0.3396.87 XWEB/882 MMWEBSDK/190506
- 百度小程序:ua特征是Chrome/63.0.3239.83,并且包含baiduboxapp字符串
- 支付寶小程序:根據(jù)支付寶版本第队,chrome有57和69等版本哮塞,ua特征字符串有NebulaSDK
- QQ小程序:根據(jù)QQ版本,chrome有66和68等版本凳谦,ua特征字符串有QQ/MiniApp
- 頭條小程序:ua特征是Chrome/62忆畅,ua特征字符串有ToutiaoMicroApp
總結(jié)
:uni-app中,js方面不存在瀏覽器兼容問題尸执,因為js都使用的是獨立的js引擎家凯,與webview無關(guān);API也是僅小程序支持的API才可以使用如失;所以uni-app的瀏覽器兼容性問題绊诲,主要是css,注意不要使用太新的css就可以褪贵。
(2) 自定義組件渲染差異
微信/QQ/百度/字節(jié)跳動這四家小程序掂之,自定義組件在渲染時會比App/H5端多一級節(jié)點抗俄,在寫樣式時需要注意:
- 使用
flex
布局時,直接給自定義組件的父元素設(shè)置為display:flex
不能影響到自定義組件內(nèi)部的根節(jié)點世舰,需要設(shè)置當(dāng)前自定義組件為display:flex
才可以动雹。 - 在自定義組件內(nèi)部設(shè)置根元素高度為100%,不能撐滿自定義組件父元素跟压。需要同時設(shè)置當(dāng)前自定義組件高度為100%才可以胰蝠。
支付寶小程序不會插入節(jié)點,不存在如上問題裆馒。