# 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 | 字节跳动小程序 |