多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # uniapp平台特性 ## 条件编译 由于各个平台有起独特性,可以使用类似于C语言的条件编译语句,指定一段代码只在特定的环境中被编译。 判断某个平台存在: ```js //#ifdef %PLATFORM% 需条件编译的代码 //#endif ``` 判断某个平台不存在: ```js //#ifndef %PLATFORM% 需条件编译的代码 //#endif ``` %PLATFORM% 可取值如下: **%PLATFORM%** **可取值如下:** | 值 | 平台 | | :---------------------- | :----------------------------------------------------------- | | APP-PLUS | App | | APP-PLUS-NVUE | App nvue | | H5 | H5 | | MP-WEIXIN | 微信小程序 | | MP-ALIPAY | 支付宝小程序 | | MP-BAIDU | 百度小程序 | | MP-TOUTIAO | 字节跳动小程序 | | MP-QQ | QQ小程序 | | MP-360 | 360小程序 | | MP | 微信小程序/支付宝小程序/百度小程序/字节跳动小程序/QQ小程序/360小程序 | | quickapp-webview | 快应用通用(包含联盟、华为) | | quickapp-webview-union | 快应用联盟 | | quickapp-webview-huawei | 快应用华为 | **支持的文件** - .vue - .js - .css - pages.json - 各预编译语言文件,如:.scss、.less、.stylus、.ts、.pug 例如: ```js //#ifdef APP-PLUS plus.push.addEventListener('click', function (msg) { var payload = null; var action = ''; if (msg.payload) { if (typeof msg.payload === 'string') { payload = JSON.parse(msg.payload); } action = payload.action; if (action === 'open') { plus.webview.open(payload.url); } } }); //#endif ``` 在HTML或CSS中也可以使用条件编译: ```xml <!-- #ifdef MP-WEIXIN --> 需条件编译的代码 <!-- #endif --> ``` ```js /* #ifdef %PLATFORM% */ 需条件编译的代码 /* #endif */ ``` 可以使用 `||` 连接多个平台,例如: ```js // #ifdef H5 || MP-WEIXIN 需条件编译的代码 // #endif ``` ## 参考资料 - [uni-app 条件编译](https://uniapp.dcloud.io/platform)