找回密码
 注册
首页 ≡≡网络技术≡≡ WEB前端 uni-app中的#ifdef #ifndef的用处,通过条件编译实现多 ...

框架 uni-app中的#ifdef #ifndef的用处,通过条件编译实现多平台融合

灰儿 2022-7-28 09:24:05
uni-app中的#ifdef #ifndef #endif的用处,通过条件编译实现多平台融合

条件编译:

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


语法:

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

  1. // #ifdef %PLATFORM%
  2.     这些代码只在该平台编译
  3. // #endif
复制代码

释义:

%PLATFORM%:平台名称

#ifdef:if defined 仅在某平台存在

#ifndef:if not defined 除了某平台均存在

#endif:结束条件编译


平台标识的意思(%PLATFORM% 可取值)
01.png

标识                         平台
APP-PLUS        5+App
MP                         微信小程序/支付宝小程序/百度小程序/头条小程序/QQ小程序
MP-WEIXIN        微信小程序
MP-ALIPAY        支付宝小程序
MP-BAIDU        百度小程序
MP-TOUTIAO        头条小程序
MP-QQ                QQ小程序
H5        H5
APP-PLUS-NVUE        5+App nvue
————————————————

条件编译写法说明



结合使用例子

例子1(仅在5+app平台上此代码生效)
  1. /*
  2.         可以使用// 或者
  3. */
  4. // #ifdef APP-PLUS
  5. <view>仅在5+app平台上显示代码</view>
  6. // #endif

  7. methods: {
  8.         // #ifdef APP-PLUS
  9.         click(){
  10.                 console.log('仅在5+app平台上生效的事件')
  11.         },
  12.         // #endif
  13. }
复制代码
例子2(非5+app平台上此代码生效)
  1. /*
  2.         可以使用// 或者
  3. */
  4. <!-- #ifndef APP-PLUS -->
  5. <view>只要不是5+app平台上此代码会显示</view>
  6. <!-- #endif -->

  7. methods: {
  8.         <!-- #ifndef APP-PLUS -->
  9.         click(){
  10.                 console.log('非5+app平台上生效的事件')
  11.         },
  12.         <!-- #endif -->
  13. }
复制代码



您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。