条件编译语句#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


根据你的描述,问题可能出在以下几个方面:

  1. 平台标识符使用错误。在uni-app中,正确的平台标识符应该是全大写的APP-PLUS,而不是APP-ANDROIDAPP-IOS。对于Android和iOS的区分,应该使用APP-PLUS配合uni.getSystemInfoSync()来判断具体平台。

  2. 正确的条件编译写法应该是:

// #ifdef APP-PLUS
const systemInfo = uni.getSystemInfoSync()
if(systemInfo.platform === 'android') {
    console.log('安卓代码')
} else if(systemInfo.platform === 'ios') {
    console.log('iOS代码')
}
// #endif
回到顶部