zoukankan      html  css  js  c++  java
  • uni-app跨平台-条件编译#ifdef的写法

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

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

    • #ifdef:if defined 仅在某平台存在
    • #ifndef:if not defined 除了某平台均存在
    • %PLATFORM%:平台名称
    条件编译写法说明
    #ifdef APP-PLUS
    需条件编译的代码
    #endif
    仅出现在 App 平台下的代码
    #ifndef H5
    需条件编译的代码
    #endif
    除了 H5 平台,其它平台均存在的代码
    #ifdef H5 || MP-WEIXIN
    需条件编译的代码
    #endif
    在 H5 平台或微信小程序平台存在的代码(这里只有||,不可能出现&&,因为没有交集)

    %PLATFORM% 可取值如下:

    平台
    APP-PLUS App
    APP-PLUS-NVUE或APP-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使用 // 注释、css 使用 /* 注释 */、vue/nvue 模板里使用 <!-- 注释 -->
    • 条件编译APP-PLUS包含APP-NVUE和APP-VUE,APP-PLUS-NVUE和APP-NVUE没什么区别,为了简写后面出了APP-NVUE ;
    • 使用条件编译请保证编译前编译后文件的正确性,比如json文件中不能有多余的逗号;

    API 的条件编译

    // #ifdef  %PLATFORM%
    平台特有的API实现
    // #endif

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

    <view>
        <view>微信公众号关注组件</view>
        <view>
            <!-- uni-app未封装,但可直接使用微信原生的official-account组件-->
            <!-- #ifdef MP-WEIXIN -->
                    <official-account></official-account>
                <!-- #endif -->
        </view>
    </view>

    样式的条件编译

    /*  #ifdef  %PLATFORM%  */
    平台特有样式
    /*  #endif  */

    注意: 样式的条件编译,无论是 css 还是 sass/scss/less/stylus 等预编译语言中,必须使用 /*注释*/ 的写法。

    参照网址:https://uniapp.dcloud.io/platform?id=%e8%b7%a8%e7%ab%af%e5%85%bc%e5%ae%b9

    作者:沐雪
    文章均系作者原创或翻译,如有错误不妥之处,欢迎各位批评指正。本文版权归作者和博客园共有,如需转载恳请注明。
    如果您觉得阅读这篇博客让你有所收获,请点击右下方【推荐】
    找一找教程网-随时随地学软件编程 http://www.zyiz.net/

  • 相关阅读:
    高并发系统设计(十九)【注册中心】:微服务架构结合RPC框架如何做到分布式系统寻址?
    高并发系统设计(十八):【RPC框架】10万QPS下如何实现毫秒级的服务调用?
    you-get 库的使用方法
    vue 全局注册signalr
    将Minio.exe注册成windows服务
    NPOI 常用方法封装
    利用NPOI给excel文件中添加图片
    Oss 对象服务存储前端方法封装
    C# 常用方法扩展及封装记录
    PostgreSQL配置密码复杂度策略
  • 原文地址:https://www.cnblogs.com/puzi0315/p/14928857.html
Copyright © 2011-2022 走看看