s***@aliyun.com
s***@aliyun.com
  • 发布:2026-03-30 16:39
  • 更新:2026-03-30 16:47
  • 阅读:20

【报Bug】页面跳转失败

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 11

HBuilderX类型: 正式

HBuilderX版本号: 5.05

手机系统: Android

手机系统版本号: Android 16

手机厂商: OPPO

手机机型: realmeGt7pro

页面类型: nvue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

无必现

预期结果:

希望每次跳转正常

实际结果:

页面偶尔跳转失败

bug描述:

运行到自定义基座或标准基座,app刚启动时,输入登录名和密码后,点击登录跳转,偶尔会出现页面卡顿无响应,或报错,之后就正常了。
顺便问下:
uniapp的nvue不维护了,那vue页面还维护吧

2026-03-30 16:39 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

作为DCloud官方人员,对这个bug反馈进行如下评审:

评审结论

该bug反馈信息不完整,暂无法定位和复现问题,需要用户补充关键信息后才能进一步排查。

详细评审分析

1. 内容完整性检查

缺失的关键信息:

  • 代码示例:未提供登录跳转的核心代码(如uni.navigateTo调用方式、页面类型判断等)
  • 复现步骤:明确标注"无必现",且未提供任何有助于定位的操作细节
  • 错误日志:未提供卡顿或报错时的控制台日志(HBuilderX控制台输出或Android Studio logcat日志)
  • 页面类型:未说明当前页面是vue还是nvue,这是App端排查跳转问题的关键信息
  • 具体报错信息:仅描述"或报错",未提供具体错误提示内容

环境信息存疑:

  • Android 16系统版本存疑(目前主流版本为Android 14/15),请确认是否为Android 14或15的笔误

2. 问题定位分析

从知识库检索发现,App端确实存在一些特定场景下的跳转异常问题:

已知相关问题(供参考):

  • nvue/vue混合跳转异常:在nvue页面import引入js方法后,切换到vue页面使用uni.navigateTo可能出现跳转多次或失败的情况(参考历史反馈)
  • webview影响:创建webview后关闭,可能导致后续页面点击跳转失效(参考对话知识库中类似案例)
  • 页面启动时序:app刚启动时的首次跳转可能与页面预加载、启动图关闭时机有关

但当前反馈无法确认是否为上述已知问题,因为缺少必要的诊断信息。

3. 关于附加问题

"nvue不维护了,vue页面还维护吧"

根据知识库中的release-archive记录:

  • nvue:虽然DCloud推荐新项目使用vue页面,但nvue仍在维护中(最新版本仍在修复nvue相关问题,如box-shadow、list组件、swiper等bug)
  • vue页面:持续维护,是uni-app的主要页面类型,请放心使用

需要补充的信息

为了定位此问题,请补充以下内容:

  1. 页面类型:当前登录页和目标页是vue还是nvue?
  2. 跳转代码:提供登录按钮点击事件中的跳转代码片段(如uni.navigateTo的参数配置)
  3. 错误日志
    • HBuilderX控制台在卡顿/报错时的输出
    • 如果是真机运行,请提供Android Studio的logcat日志中过滤uni-appweex的相关错误
  4. pages.json配置:相关页面的路由配置(特别是如果有condition启动模式配置)
  5. manifest配置:是否使用了"nvueCompiler": "uni-app""nvueStyleCompiler": "uni-app"
  6. 具体报错内容:如果页面报错,请提供截图或完整的错误提示文本

临时排查建议

在补充信息前,可尝试以下方案:

  1. 检查跳转时机:确保在onLoadonShow等生命周期内完成数据初始化后再执行跳转,避免在app启动瞬间立即跳转
  2. 页面类型统一:如果是nvue和vue混合项目,尝试将相关页面统一为vue页面测试是否仍有问题
  3. 延迟跳转:在登录成功回调中增加setTimeout延迟100-300ms再执行跳转,排除启动时序冲突
  4. 基座重装:卸载手机上的基座,重新运行安装,排除基座缓存问题

请补充上述信息后重新提交,或前往ask.dcloud.net.cn发帖并提供详细日志,以便官方人员进一步跟进。

内容为 AI 生成,仅供参考
s***@aliyun.com

s***@aliyun.com (作者)

uniapp的nvue页面,启用了"nvueStyleCompiler": "uni-app"。

s***@aliyun.com

s***@aliyun.com (作者)

const handleLoginClick = () => {
//登录
uni.hideKeyboard()
if (!validatePhone(loginParams.value.loginPhone)) {
CommonUtil.toast('请输入正确的手机号')
return
}
if (isPwdLogin.value) {
if (!loginParams.value.passward || loginParams.value.passward.length <= 0) {
CommonUtil.toast('请输入正确的密码')
return
}
} else {
if (loginParams.value.checkCode.length == 0) {
CommonUtil.toast('请输入验证码')
return
}
}
if (!isSelect.value) {
const title = '为维护您的权益,使用' + appName + '前请先阅读并同意' + appName + '的隐私协议'
uni.showToast({
title: title,
icon: 'none',
duration: 2500
})
return
}
const inputPwd = isPwdLogin.value ? loginParams.value.passward : loginParams.value.checkCode;
pubApi.login(loginParams.value.loginPhone, inputPwd, isPwdLogin.value, pubApi.ManagerClientType())
.then((_res : UserInfo) => {
try {
const base64Phone = http.encrypt(loginParams.value.loginPhone)
console.log('base64Phone=' + base64Phone)
db.saveOrQuery(DataKey.lastLoginPhone(), base64Phone)
} catch (e) {
console.log(e)
}
uni.reLaunch({
url: pages.home
})
})
}

要回复问题请先登录注册