uni-app的subNvue在部分app内自动显示 导致层级问题
uni-app的subNvue在部分app内自动显示 导致层级问题
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | 10 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
PC开发环境操作系统版本号:10
HBuilderX类型:正式
HBuilderX版本号:3.1.7
手机系统:Android
手机系统版本号:Android 11
手机厂商:OPPO
手机机型:雷电模拟器和真机一加8pro
页面类型:vue
打包方式:云端
项目创建方式:HBuilderX
### 示例代码:
```javascript
‘’‘
{
"path": "pages/scan/scan",
"style": {
"app-plus": {
"titleNView": false,
"subNVues":[{
"id": "subInput",
"path": "pages/scan/subInput/subInput",
// "type":"popup",
"style": {
"position": "absolute",
"top": "300rpx",
"right":"250rpx",
"width": "250rpx",
"height": "80rpx",
"background": "transparent"
}
}]
}
}
}
’‘’
操作步骤:
只是一部分app会自动出现(没有使用show()的情况下)
预期结果:
不自动出现(没有使用show()的情况下)
实际结果:
一部分app会自动出现(没有使用show()的情况下)
bug描述:
部分老app(自定义组件编译模式)使用了subNvue,subNvues页面自动显示,导致层级问题; 使用Hello uni-app可以,在原app复制了Hello uni-app的manifest.json和清空所有影响项后执行,还是自动出现
更多关于uni-app的subNvue在部分app内自动显示 导致层级问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
目前我也遇到同样问题,我是1加8手机。请问这个问题解决了吗
更多关于uni-app的subNvue在部分app内自动显示 导致层级问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
使用其它方案了,这个没有追踪
我的也是1加8t手机,也是在没有调用show方法时进入页面就直接展示了,压根儿控制不了,到现在2023了还是有这个问题
在 uni-app 中,subNvue 组件默认不会自动显示,必须通过 plus.webview.getSubNvueById('subInput').show()
方法手动触发显示。根据你的描述,部分老版本 App 出现自动显示的问题,可能是由于以下原因:
-
编译模式差异:老项目使用自定义组件编译模式(非 V3),可能存在 subNvue 初始化的兼容性问题。建议检查 manifest.json 中是否启用了 V3 编译模式(
"usingComponents": true
),并尝试切换到 V3 模式重新打包测试。 -
页面生命周期影响:subNvue 的显示可能受到页面生命周期(如 onReady)的意外触发。确保没有在页面加载时误调用 show() 方法,或检查全局代码、插件是否有隐式调用。
-
样式或路径配置问题:示例代码中 subNvue 的路径为
pages/scan/subInput/subInput
,需确认该路径对应的 .nvue 文件存在且内容正确。若文件为空或渲染异常,可能导致组件意外显示。 -
平台兼容性:部分 Android 机型或模拟器对 subNvue 的渲染机制支持不一致,尤其是低版本系统或厂商定制 ROM。建议在多个真机(不同品牌/系统版本)测试,定位是否为特定环境问题。
临时解决方案:在页面 onLoad 时强制隐藏 subNvue:
onLoad() {
const subNvue = plus.webview.getSubNvueById('subInput');
subNvue && subNvue.hide();
}