uni-app条件注释(判断在何种环境显示隐藏)

3 篇文章 0 订阅
2 篇文章 0 订阅

条件注释定义

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

条件注释的语法

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

  • #ifdefif defined 仅在某平台存在
  • #ifndefif not defined 除了某平台均存在
  • %PLATFORM%:平台名称
  • 条件编译写法

    说明

    #ifdef APP-PLUS
    需条件编译的代码
    #endif

    仅出现在 App 平台下的代码

    #ifndef H5
    需条件编译的代码
    #endif

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

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

    H5 平台或微信小程序平台存在的代码(这里只有||,不可能出现&&,因为没有交集)

  • %PLATFORM% 可取值如下:

    平台

    APP-PLUS

    App

    APP-PLUS-NVUEAPP-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

    快应用华为

  • 组件的条件注释

    <!--  #ifdef  %PLATFORM% -->

    平台特有的组件

    <!--  #endif -->

    示例,如下公众号关注组件仅会在微信小程序中出现:

    <view>

    <!-- uni-app未封装,但可直接使用微信原生的official-account组件-->

                       <!-- #ifdef MP-WEIXIN -->

                                <view>微信公众号关注组件</view>

                                 <official-account></official-account>

              <!-- #endif -->

    </view>

    Api的条件注释

    // #ifdef  %PLATFORM%

    平台特有的API实现

    // #endif

    示例,如下代码仅在 App 下出现:

    // #ifdef APP-PLUS

          plus.push.createMessage("该上课了", JSON.stringify({

                                        id: "999",

                                        type: "course"

                                 }))

                       plus.push.addEventListener('click',function(msg){

                                 var payload=null

                                 var action = ''

                                 console.log("点击了通知消息")

                                 if(msg.payload){

                                        if(typeof msg.payload == 'string'){

                                                payload = JSON.parse(msg.payload)

                                        }else{

                                                payload = msg.payload

                                        }

                                        console.log(payload)

                                        action = payload.action

                                        if(action == 'open'){

                                        console.log("dakai")

                                              plus.webview.open(payload.url)

                                        }

                                 }

                         })

                         // #endif

    示例,如下代码不会在 H5 平台上出现:

    // #ifndef H5

    console.log("123")

    uni.scanCode({

          success() {

             console.log("123")

          }

        })

    // #endif

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值