uni-app 鸿蒙系统启动打开 /pages/detail/detail Bug反馈

uni-app 鸿蒙系统启动打开 /pages/detail/detail Bug反馈

开发环境 版本号 项目创建方式
Windows windows 10 HBuilderX
### 操作步骤:

```json
{
  "pages": [
    {
      "path": "pages/index/index",
      "style": {
        "navigationBarTitleText": "xxxx"
      }
    },
    {
      "path": "pages/detail/detail",
      "style": {
        "navigationBarTitleText": "xxxx"
      }
    }
  ],
  "globalStyle": {
    "mp-alipay": {
      "backgroundColor": "#ffffff",
      "titleBarColor": "#ffffff"
    },
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "xxxx",
    "navigationBarBackgroundColor": "#F8F8F8",
    "backgroundColor": "#F8F8F8"
  }
}

预期结果:

启动应该默认打开 /pages/index/index (第一次安装启动没问题,第二次以后启动出故障)

实际结果:

启动应该默认打开 /pages/detail/detail

bug描述:

采用鸿蒙 2.0 系统,pages.json 中配置 /pages/index/index/pages/detail/detail

除第一次安装以外,正常启动 /pages/index/index,退出 app,或者强制关闭进程等,启动页面均为 /pages/detail/detail

安卓系统无故障,安卓的 APP 运行一切正常。

故障出现在鸿蒙 2.0


更多关于uni-app 鸿蒙系统启动打开 /pages/detail/detail Bug反馈的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

顶一下啊

更多关于uni-app 鸿蒙系统启动打开 /pages/detail/detail Bug反馈的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个典型的鸿蒙系统页面缓存机制导致的启动页面异常问题。在鸿蒙系统中,应用退出时系统会记录最后一个活动页面,下次启动时可能直接恢复该页面而不是从首页开始。

解决方案:

  1. 在App.vue的onShow生命周期中强制重置启动页面:
onShow: function() {
  // 鸿蒙系统页面恢复处理
  const pages = getCurrentPages();
  if(pages.length === 0) {
    uni.reLaunch({
      url: '/pages/index/index'
    });
  }
}
  1. 在pages.json中为鸿蒙平台单独配置启动页面:
"globalStyle": {
  "mp-harmonyos": {
    "startPage": "pages/index/index"
  }
}
  1. 检查detail页面的生命周期,确保没有在onLoad或onShow中执行跳转逻辑。

  2. 在manifest.json中配置鸿蒙启动参数:

"harmonyos" : {
  "package": "你的应用包名",
  "mainAbility": ".MainAbility",
  "deviceTypes": [
    "phone", "tablet"
  ]
}
回到顶部