条件编译语句#ifdef命中不了 APP-IOS 和APP-ANDROID 在uni-app中
条件编译语句#ifdef命中不了 APP-IOS 和APP-ANDROID 在uni-app中
项目属性 | 值 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Windows |
PC开发环境操作系统版本号 | 13 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 4.45 |
手机系统 | 全部 |
手机厂商 | 华为 |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
测试过的手机
- iphone XR
- 华为荣耀
示例代码:
// #ifdef APP-ANDROID
console.log('111111')
// #endif
// #ifdef APP-IOS
console.log('2222222')
// #endif
操作步骤:
- 安卓手机或者ios手机下无法执行对应条件编译的代码
预期结果:
- 安卓手机或者ios手机可以执行对应条件编译的代码
实际结果:
- 安卓手机或者ios手机下无法执行对应条件编译的代码
bug描述:
- 条件编译语句#ifdef命中不了 APP-ANDROID 和APP-IOS
更多关于条件编译语句#ifdef命中不了 APP-IOS 和APP-ANDROID 在uni-app中的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
你是uniapp的项目吧?
这个条件编译 只有uni-app x和uts支持哦
更多关于条件编译语句#ifdef命中不了 APP-IOS 和APP-ANDROID 在uni-app中的实战教程也可以访问 https://www.itying.com/category-93-b0.html
根据你的描述,问题可能出在以下几个方面:
-
平台标识符使用错误。在uni-app中,正确的平台标识符应该是全大写的
APP-PLUS
,而不是APP-ANDROID
或APP-IOS
。对于Android和iOS的区分,应该使用APP-PLUS
配合uni.getSystemInfoSync()
来判断具体平台。 -
正确的条件编译写法应该是:
// #ifdef APP-PLUS
const systemInfo = uni.getSystemInfoSync()
if(systemInfo.platform === 'android') {
console.log('安卓代码')
} else if(systemInfo.platform === 'ios') {
console.log('iOS代码')
}
// #endif