uni-app 鸿蒙重大bug

发布于 1周前 作者 ionicwang 来自 uni-app

uni-app 鸿蒙重大bug

操作步骤

鸿蒙app启动uniapp小程序,跳转微信或者其他三方app,返回回来,uni.相关方法全报错,导致app死掉

预期结果

不报错

实际结果

现在报错

bug描述

鸿蒙系统频繁切换到后台,会触发uni.相关方法全会死掉!!!

项目 信息
产品分类 uni小程序SDK
手机系统 Android
手机系统版本号 Android 7.1.1
手机厂商 华为
手机机型 meta60
页面类型 vue
SDK版本号 3.1.8

更多关于uni-app 鸿蒙重大bug的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复

可以提供一下报错信息吗?这里没有复现,你使用的 sdk 版本和 deveco 版本是多少?

更多关于uni-app 鸿蒙重大bug的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


SDK是2.3.18, DevEco Studio 5.0.0 Release Build #DS-233.14475.28.36.503906 Build Version: 5.0.3.906, built on October 21, 2024 Runtime version: 17.0.12+1-b1087.25 aarch64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. macOS 14.5 GC: G1 Young Generation, G1 Old Generation Memory: 2048M Cores: 8 Metal Rendering is ON Registry: idea.plugins.compatible.build=IC-233.14475.28

还有个manifest的报错没截取到,下次复现了截取

还有反馈没有固定场景触发,正常使用一段时间也会突然出现这种挂掉

回复 1***@qq.com: 可以提供一下一个可以复现的项目吗?

回复 DCloud_UNI_yuhe: 进入后台死掉是代码问题,但是用着用着偶现卡死和闪退问题怎么定位啊,有什么优化方案吗

错误日志看不出来任何东西

还有,uni.reqeust如果调用过多频繁调用也会导致闪退

针对您提到的uni-app在鸿蒙系统上遇到的重大bug问题,由于具体bug细节未明确,我将提供一个通用的调试和问题解决思路,并附上相关的代码案例,以帮助您定位和修复可能的问题。请注意,以下代码和步骤是基于假设的bug场景,具体实现需要根据实际bug情况进行调整。

通用调试步骤

  1. 确认问题复现环境: 确保在多个鸿蒙设备上都能复现该问题,以排除设备特异性问题。

  2. 查看日志: 使用鸿蒙系统的日志工具(如HiLog)查看uni-app运行时的日志,寻找可能的错误信息或异常堆栈。

  3. 代码审查: 检查与问题相关的代码部分,特别是涉及到系统接口调用、UI渲染和事件处理的代码。

假设bug场景及代码案例

假设bug场景为:在鸿蒙系统上,uni-app的某个页面无法正常加载,页面白屏或显示异常。

步骤一:确认页面代码

检查页面相关的.vue文件,确保页面结构和数据绑定正确。

<template>
  <view>
    <text>{{ message }}</text>
  </view>
</template>

<script>
export default {
  data() {
    return {
      message: 'Hello, HarmonyOS!'
    };
  },
  onLoad() {
    console.log('Page loaded');
  }
};
</script>

步骤二:检查生命周期钩子

确保页面的生命周期钩子(如onLoad)被正确调用,且没有抛出异常。

步骤三:调试系统接口调用

如果页面涉及到系统接口调用(如文件系统、网络请求等),确保这些接口在鸿蒙系统上可用,并处理可能的异常。

onLoad() {
  uni.request({
    url: 'https://example.com/api',
    success: (res) => {
      console.log('Request success:', res);
      this.message = res.data.message;
    },
    fail: (err) => {
      console.error('Request failed:', err);
      this.message = 'Failed to load data';
    }
  });
}

步骤四:使用条件编译

针对鸿蒙系统进行条件编译,以处理可能的平台差异。

<script>
export default {
  data() {
    return {
      message: ''
    };
  },
  onLoad() {
    #ifdef HARMONYOS
      this.message = 'Running on HarmonyOS';
    #else
      this.message = 'Running on other platforms';
    #endif
    console.log('Page loaded with message:', this.message);
  }
};
</script>

以上步骤和代码案例提供了一种通用的方法来定位和修复uni-app在鸿蒙系统上可能遇到的重大bug。如果问题依旧存在,建议进一步分析日志信息,或向uni-app和鸿蒙系统的官方支持渠道寻求帮助。

回到顶部