抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

概述

在 uni-app 中,支持以下的平台:

平台名称 备注
APP-ANDROID Android
APP-IOS iOS
APP-APP-HARMONY 鸿蒙
WEB 网页
MP-WEIXIN 微信小程序

#ifdef#ifndef 条件编译

在实现多平台兼容的时候可以使用 #ifdef#ifndef 来进行条件编译。

#ifdef:如果满足条件,则编译该部分代码。

#ifndef:如果不满足条件,则编译该部分代码。

模版

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<template>
<!-- #ifdef MP-WEIXIN -->
<view>微信小程序</view>
<!-- #endif -->
<!-- #ifdef APP-ANDROID -->
<view>APP</view>
<!-- #endif -->
<!-- #ifndef APP-IOS -->
<view>IOS</view>
<!-- #endif -->
<!-- #ifndef APP-APP-HARMONY -->
<view>鸿蒙</view>
<!-- #endif -->
<!-- #ifndef WEB -->
<view>网页</view>
<!-- #endif -->
</template>

脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script>
export default {
data() {
return {
}
},
methods: {
// #ifdef WEB
test() {
alert("hello")
}
// #endif
}
};
</script>

基本上都是直接在注释当中,#ifdef#ifndef,后面跟平台名称起头,#endif 结尾。

这部分存在 ||&& 的关系,可以组合使用,例如:

1
2
3
<!-- #ifdef APP-ANDROID || APP-IOS -->
<view>APP</view>
<!-- #endif -->

未声明的情况下,默认选择:APP-ANDROID

可使用的文件类型

  1. ts
  2. uts
  3. vue
  4. uvue
  5. css
  6. pages.json

参考资料

  1. uni-app-x 多平台代码提示和语法校验 - HBuilderX 文档