uni-app 云打包后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描述:
- 开发环境真机运行正常,云打包后运行到真机白屏
怎么设置的自定义导航?
代码看一下
“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提供的开发者工具进行调试,查看控制台输出,确保没有错误或警告信息。
如果问题仍然存在,建议检查云打包的日志输出,查看是否有与配置或代码相关的错误信息,以便进一步定位问题。