# uniapp 条件编译

# 基本使用

编译条件 说明
APP-PLUS App端(Android+iOS)
H5 浏览器端
MP-WEIXIN 微信小程序
MP-ALIPAY 支付宝小程序
MP-BAIDU 百度小程序
MP-TOUTIAO 字节跳动小程序

好的,下面是 UniApp 条件编译运行时判断的完整用法清单,包括 App、H5、微信小程序、iOS、Android 等平台:


# ✅ 条件编译语法说明

编译条件 说明
APP-PLUS App端(Android+iOS)
H5 浏览器端
MP-WEIXIN 微信小程序
MP-ALIPAY 支付宝小程序
MP-BAIDU 百度小程序
MP-TOUTIAO 字节跳动小程序

# 📦 条件编译完整示例

# 🔸 1. 只在 App 端运行(含 Android/iOS)

// #ifdef APP-PLUS
console.log("这是 App(Android + iOS)");
// #endif
✅ Copy success!

# 🔸 2. 只在 iOS App 上运行

// #ifdef APP-PLUS
if (plus.os.name === 'iOS') {
  console.log("这是 iOS App");
}
// #endif
✅ Copy success!

# 🔸 3. 只在 Android App 上运行

// #ifdef APP-PLUS
if (plus.os.name === 'Android') {
  console.log("这是 Android App");
}
// #endif
✅ Copy success!

# 🔸 4. 只在 H5(浏览器)运行

// #ifdef H5
console.log("这是 H5 浏览器环境");
// #endif
✅ Copy success!

# 🔸 5. 只在微信小程序运行

// #ifdef MP-WEIXIN
console.log("这是微信小程序");
// #endif
✅ Copy success!

# 🛠️ 封装一个平台判断工具函数(运行时判断)

你可以写一个简单的运行时判断工具:

export const platform = (() => {
  let system = 'unknown';
  // #ifdef APP-PLUS
  if (plus.os.name === 'iOS') {
    system = 'app-ios';
  } else {
    system = 'app-android';
  }
  // #endif
  // #ifdef H5
  system = 'h5';
  // #endif
  // #ifdef MP-WEIXIN
  system = 'mp-weixin';
  // #endif
  return system;
})();
✅ Copy success!

使用:

if (platform === 'app-ios') {
  // iOS逻辑
} else if (platform === 'h5') {
  // H5逻辑
}
✅ Copy success!

# 📝 补充说明

  • #ifdef ... #endif编译时条件判断,不能放在动态函数中执行,它在打包前就已经决定。
  • plus.os.name 是运行时判断,只能用在 APP-PLUS 环境。
  • 微信小程序平台下也支持 uni.getSystemInfoSync().platform 判断安卓/iOS,但前提是你在小程序环境中。

编译条件 说明 说明
APP-PLUS App端(Android+iOS)
H5 浏览器端
MP-WEIXIN 微信小程序
MP-ALIPAY 支付宝小程序
MP-BAIDU 百度小程序
MP-TOUTIAO 字节跳动小程序