uni-app 【报Bug】APP_PLUS 条件编译命中鸿蒙NEXT

发布于 1周前 作者 zlyuanteng 来自 Uni-App

uni-app 【报Bug】APP_PLUS 条件编译命中鸿蒙NEXT

项目信息 详细信息
产品分类 uniapp/App
PC开发环境 Mac
PC开发环境版本 macOS 15
手机系统 HarmonyOS NEXT
手机系统版本 HarmonyOS NEXT Developer Beta1
手机厂商 华为
手机机型 Mate 60
页面类型 vue
vue版本 vue3
打包方式 离线
项目创建方式 CLI
CLI版本号 3.0.0-4020920240930001

操作步骤:

在鸿蒙设备中执行

// #ifdef APP-PLUS
console.log('命中鸿蒙')
// #endif

预期结果:

控制台不输出 命中鸿蒙

实际结果:

控制台输出 命中鸿蒙

bug描述:

// #ifdef APP-PLUS  
// #endif  

代码命中鸿蒙设备,但鸿蒙设备并不支持plus,导致执行报错


更多关于uni-app 【报Bug】APP_PLUS 条件编译命中鸿蒙NEXT的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

可以使用APP-HARMONY来区分哦,可以看文档 https://uniapp.dcloud.net.cn/tutorial/platform.html

更多关于uni-app 【报Bug】APP_PLUS 条件编译命中鸿蒙NEXT的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这样并不合理,用APP_PLUS 命中了,但是却不支持APP_PLUS 这是问题。

4.31 alpha已修复

在处理 uni-app 中关于 APP_PLUS 条件编译命中鸿蒙 NEXT 平台的问题时,首先需要确保你的项目配置正确,并且代码中的条件编译逻辑也是准确的。以下是一个简要的示例,展示如何在 uni-app 中针对鸿蒙 NEXT 平台进行条件编译,并附带一些可能的排查步骤。

1. 项目配置

确保你的 manifest.json 文件中已经配置了鸿蒙 NEXT 平台支持。这通常在 mp-appplus 配置项下设置:

{
  "mp-appplus": {
    "distribute": {
      "platforms": [
        "huawei"
      ]
    }
  }
}

2. 条件编译示例

在你的代码中,可以使用 APP_PLUS__HUAWEI__(假设这是鸿蒙 NEXT 的预定义宏,具体需参考官方文档)来进行条件编译。例如,你可能想在鸿蒙平台上启用特定的功能或样式:

// 在 script 部分
if (process.env.APP_PLUS && process.env.__HUAWEI__) {
  console.log('This code is running on Huawei Hongmeng NEXT platform.');
  // 鸿蒙 NEXT 特定的代码逻辑
} else {
  console.log('This code is running on other platforms.');
  // 其他平台的代码逻辑
}
<!-- 在 template 部分 -->
<view>
  <text v-if="process.env.APP_PLUS && process.env.__HUAWEI__">
    Hello, Huawei Hongmeng NEXT!
  </text>
  <text v-else>
    Hello, Other Platforms!
  </text>
</view>

3. 排查步骤

  • 确认宏定义:首先确认 __HUAWEI__ 是否是鸿蒙 NEXT 的正确宏定义。如果不是,需要替换为正确的宏。
  • 清理缓存:有时候,开发工具或编译环境可能因缓存问题导致条件编译不生效。尝试清理项目缓存并重新编译。
  • 日志输出:在条件编译的代码块中加入详细的日志输出,帮助定位问题是否出在条件编译的判断上。
  • 查阅文档:仔细阅读 uni-app 和鸿蒙 NEXT 的官方文档,确保所有配置和API调用都是最新的且正确的。
  • 社区和论坛:如果问题依旧存在,可以访问 uni-app 社区或鸿蒙开发者论坛寻求帮助,可能有其他开发者遇到过类似问题。

通过上述步骤和代码示例,你应该能够更有效地排查和解决 uni-app 中关于 APP_PLUS 条件编译命中鸿蒙 NEXT 平台的问题。

回到顶部