uniapp条件编译

本文介绍了条件编译在编程中的使用,特别是在配置不同平台协议时,如APP-PLUS、H5、微信小程序等,通过ifdef和ifndef等注释方式实现代码的平台特定编译。举例了CSS、JS和HTML中如何根据平台条件显示不同内容。

1.说明

条件编译是用特殊的注释作为标记,在编译时根据这些特殊的注释,将注释里面的代码编译到不同平台。

配置不同端协议的时候经常用到。

写法:以 #ifdef 或 #ifndef 加 %PLATFORM% 开头,以 #endif 结尾。

1  #ifdef:if defined 仅在某平台存在
2  #ifndef:if not defined 除了某平台均存在
3  %PLATFORM%:平台名称

写法说明
#ifdef APP-PLUS
需条件编译的代码  
#endif
    仅出现在 App 平台下的代码

#ifndef H5 
需条件编译的代码       

#endif

除了 H5 平台,其它平台均存在的代码

#ifdef H5 || MP-WEIXIN              
需条件编译的代码     

#endif

在 H5 平台或微信小程序平台存在的代码

(这里只有||,不可能出现&&,因为没有交集)

2.常用值

平台

APP-PLUSAPP
APP-PLUS-NVUEAPP nvue
H5H5
MP-WEIXIN微信小程序
MP-ALIPAY支付宝小程序
MP-BAIDU百度小程序
MP-TOUTIAO字节跳动小程序
MP-QQQQ小程序
MP-360360小程序
MP

微信小程序/支付宝小程序/百度小程序/字节跳动小程序

/QQ小程序/360小程序

quickapp-webview快应用通用(联盟、华为)
quickapp-webview-union快应用联盟
quickapp-webview-huawei快应用华为

3.举例

1)CSS里面判断不同的端

APP:APP端
 
            /*#ifdef APP-PLUS*/
            top:0;
            /*#endif*/
 
H5:H5端
            /*#ifdef H5*/
            top:88rpx;
            /*#endif*/
 
MP:小程序
            /*#ifdef MP*/
            top:0;
            /*#endif*/

2)JS里面判断不同的端

APP:APP端
 
            /*#ifdef APP-PLUS*/
            console.log('APP端')
            /*#endif*/
 
H5:H5端
            /*#ifdef H5*/
            console.log('H5端')
            /*#endif*/
 
MP:小程序
            /*#ifdef MP*/
            console.log('微信小程序端')
            /*#endif*/

3)在页面上判断不同的端

APP:APP端
 
            <!-- #ifdef APP-PLUS -->
            <view> APP端 </view>
            <!-- #endif -->
 
H5:H5端
            <!-- #ifdef H5 -->
            <view> H5端 </view>
            <!-- #endif -->
 
MP:小程序
           <!-- #ifdef MP -->
            <view> 小程序端 </view>
            <!-- #endif -->

uniapp条件编译是一种根据平台不同执行不同代码的技术。使用uniapp提供的条件编译代码,可以在不同平台上执行特定的代码。在代码中,可以使用条件编译指令来限定代码在特定平台上执行。例如,使用#ifdef和#endif指令来限定代码块只在APP端执行,而不在H5端执行。除了代码,还可以使用条件编译来处理组件的分端逻辑。条件编译的使用方法是,在代码中使用特定的条件编译指令,以平台名称作为条件,来限定代码的执行范围。平台名称可以取以下几个值:APP-PLUS、App、nvue、H5、MP-WEIXIN。条件编译的格式是以#ifdef或#ifndef加上平台名称开头,以#endif结尾。其中#ifdef表示仅在某平台存在,而#ifndef表示除了某平台均存在。%PLATFORM%是一个占位符,表示平台名称。通过使用条件编译,可以根据不同的平台做出相应的处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [uniapp条件编译](https://blog.csdn.net/qq_45689942/article/details/118330469)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [uni-app条件编译](https://blog.csdn.net/ajdhakj6/article/details/128480497)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值