uni-app 云打包后app启动白屏,底部显示原生导航栏,实际设置的是自定义导航

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

uni-app 云打包后app启动白屏,底部显示原生导航栏,实际设置的是自定义导航

开发环境 版本号 项目创建方式
Windows Windows 10 专业版 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Windows

HBuilderX类型:正式

HBuilderX版本号:4.24

手机系统:Android

手机系统版本号:Android 12

手机厂商:小米

手机机型:Redmi Note 10

页面类型:vue

vue版本:vue3

打包方式:云端

App下载地址或H5网址: https://file.wenxuque.com/prod/static/xxyb/__UNI__E1B0BB4__20240913111320.apk

操作步骤:

  • 只要是云打包就不行

预期结果:

  • 真正常运行

实际结果:

  • 不能正常运行

bug描述:

  • 开发环境真机运行正常,云打包后运行到真机白屏


7 回复

怎么设置的自定义导航? 代码看一下


“tabBar”: { “custom”: true, “borderStyle”: “black”, “backgroundColor”: “#fff”, “color”: “#666”, “selectedColor”: “#2C68FF”, “height”: “50px”, “spacing”: “3px”, “list”: [ { “pagePath”: “pages/index/index”, “text”: “首页”, “iconPath”: “static/image/home.png”, “selectedIconPath”: “static/image/home_active.png” }, { “pagePath”: “pages/waybill/index”, “text”: “运单”, “iconPath”: “static/image/waybill.png”, “selectedIconPath”: “static/image/waybill_active.png” }, { “pagePath”: “pages/goods/index”, “text”: “货源”, “iconPath”: “static/image/goods.png”, “selectedIconPath”: “static/image/goods_active.png” }, { “pagePath”: “pages/mine/index”, “text”: “我的”, “iconPath”: “static/image/my.png”, “selectedIconPath”: “static/image/my_active.png” } ] },

回复 x***@163.com: ?你不是说底部显示原生导航栏,实际设置的自定义导航,你这图片发的跟你设置的导航栏显示的这不一样么

回复 套马杆的套子: “custom”: true,这个属性不是代表自定义tabBar么,我不希望显示原生的tabBar,在app里面是不配置就不显示吗?白屏是代码的问题

回复 x***@163.com: “custom”: true文档中我是没看到,感觉你可能整混了,"custom"可以设置顶部导航栏这倒是知道.想自定义的话,我这有个组件倒,你看看能满足不 https://ext.dcloud.net.cn/plugin?id=14889

回复 套马杆的套子: 好的 谢谢了

针对你提到的uni-app云打包后应用启动白屏,并且底部显示原生导航栏而非自定义导航的问题,这通常是由于配置或代码实现不当导致的。以下是一些可能的解决方案和代码示例,帮助你排查和修复这个问题。

1. 检查manifest.json配置

确保在manifest.json中正确配置了应用的基本信息和导航栏设置。特别是app-plus部分,关于应用导航栏的配置需要特别注意。

"app-plus": {
    "distribute": {
        // 其他配置...
    },
    "usingComponents": true,
    "navigationBar": {
        "titleText": "应用名称",
        "titleTextStyle": "black",
        "backgroundColor": "#FFFFFF",
        "type": "default" // 确保type为default或其他你需要的类型,而不是custom
    },
    "window": {
        "navigationBarBackgroundColor": "#FFFFFF",
        "navigationBarTextStyle": "black",
        "navigationBarTitleText": "应用名称",
        "backgroundTextStyle": "dark",
        "enablePullDownRefresh": false
    }
}

注意:如果你希望使用自定义导航栏,请确保navigationBar.type设置为custom,并在页面中正确实现自定义导航栏的逻辑。

2. 自定义导航栏实现

如果你需要自定义导航栏,请在页面的.vue文件中添加以下代码:

<template>
  <view class="container">
    <!-- 自定义导航栏 -->
    <view class="custom-navbar">
      <!-- 导航栏内容 -->
      <text>自定义标题</text>
    </view>
    <!-- 页面内容 -->
    <view class="page-content">
      <!-- 页面具体实现 -->
    </view>
  </view>
</template>

<script>
export default {
  onReady() {
    // 设置页面顶部为透明,以显示自定义导航栏
    if (this.$mp.page.json.navigationBarTitleText === '') {
      const systemInfo = uni.getSystemInfoSync();
      const statusBarHeight = systemInfo.statusBarHeight;
      this.$style.page.top = `${statusBarHeight}px`;
    }
  }
}
</script>

<style scoped>
.container {
  padding-top: var(--status-bar-height); /* 确保内容不被状态栏遮挡 */
}
.custom-navbar {
  /* 自定义导航栏样式 */
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 44px; /* 根据需要调整高度 */
  background-color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
</style>

3. 调试和测试

在本地开发环境中充分测试应用,确保自定义导航栏和页面内容正常显示。使用uni-app提供的开发者工具进行调试,查看控制台输出,确保没有错误或警告信息。

如果问题仍然存在,建议检查云打包的日志输出,查看是否有与配置或代码相关的错误信息,以便进一步定位问题。

回到顶部