1,編譯期判斷(條件編譯,代碼塊中的代碼只會編譯到對應的發行包里)
①例如:
// #ifdef H5 alert("只有h5平台才有alert方法") // #endif
// #ifndef H5 alert("除了h5平台之外的其他平台才有的方法") // #endif
②//#ifdef %PLATFORM% //#endif 可以使用的值
值 | 生效條件 |
---|---|
VUE3 | HBuilderX 3.2.0+ 詳情 |
APP-PLUS | App |
APP-PLUS-NVUE或APP-NVUE | App nvue |
H5 | H5 |
MP-WEIXIN | 微信小程序 |
MP-ALIPAY | 支付寶小程序 |
MP-BAIDU | 百度小程序 |
MP-TOUTIAO | 字節跳動小程序 |
MP-LARK | 飛書小程序 |
MP-QQ | QQ小程序 |
MP-KUAISHOU | 快手小程序 |
MP-360 | 360小程序 |
MP | 微信小程序/支付寶小程序/百度小程序/字節跳動小程序/飛書小程序/QQ小程序/360小程序 |
QUICKAPP-WEBVIEW | 快應用通用(包含聯盟、華為) |
QUICKAPP-WEBVIEW-UNION | 快應用聯盟 |
QUICKAPP-WEBVIEW-HUAWEI | 快應用華為 |
③支持的文件
- .vue/.nvue:<!-- 注釋 -->
- .js:// 注釋
- .css:/* 注釋 */
- pages.json: // 注釋
- 各預編譯語言文件,如:.scss、.less、.stylus、.ts、.pug
④注:VUE3
需要在項目的 manifest.json
文件根節點配置 "vueVersion" : "3"
2,運行期判斷
可使用 uni.getSystemInfoSync().platform
判斷客戶端環境是 Android、iOS 還是小程序開發工具(在百度小程序開發工具、微信小程序開發工具、支付寶小程序開發工具中使用 uni.getSystemInfoSync().platform
返回值均為 devtools)。
1 switch(uni.getSystemInfoSync().platform){ 2 case 'android': 3 console.log('運行Android上') 4 break; 5 case 'ios': 6 console.log('運行iOS上') 7 break; 8 default: 9 console.log('運行在開發者工具上') 10 break; 11 }