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

4 回复

目前我也遇到同样问题,我是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 出现自动显示的问题,可能是由于以下原因:

  1. 编译模式差异:老项目使用自定义组件编译模式(非 V3),可能存在 subNvue 初始化的兼容性问题。建议检查 manifest.json 中是否启用了 V3 编译模式("usingComponents": true),并尝试切换到 V3 模式重新打包测试。

  2. 页面生命周期影响:subNvue 的显示可能受到页面生命周期(如 onReady)的意外触发。确保没有在页面加载时误调用 show() 方法,或检查全局代码、插件是否有隐式调用。

  3. 样式或路径配置问题:示例代码中 subNvue 的路径为 pages/scan/subInput/subInput,需确认该路径对应的 .nvue 文件存在且内容正确。若文件为空或渲染异常,可能导致组件意外显示。

  4. 平台兼容性:部分 Android 机型或模拟器对 subNvue 的渲染机制支持不一致,尤其是低版本系统或厂商定制 ROM。建议在多个真机(不同品牌/系统版本)测试,定位是否为特定环境问题。

临时解决方案:在页面 onLoad 时强制隐藏 subNvue:

onLoad() {
  const subNvue = plus.webview.getSubNvueById('subInput');
  subNvue && subNvue.hide();
}
回到顶部