页面不跳转

页面不跳转

项目信息 详细信息
产品分类 uniapp/App
PC开发环境 Mac
PC开发环境版本号 15.2
HBuilderX类型 正式
HBuilderX版本号 3.7.11
手机系统 iOS
手机系统版本号 iOS 15
手机厂商 苹果
手机机型 iPhone12 ,iPhone XR
页面类型 vue
vue版本 vue2
打包方式 离线
项目创建方式 HBuilderX

示例代码:

uni.redirectTo({
url: "/pages/detail-cert?id=1",
fail: (error) => {
uni.showToast({
title: "跳转失败" + error,
icon: 'error'
})
}
})

操作步骤:

uni.redirectTo({
url: "/pages/detail-cert?id=1",
fail: (error) => {
uni.showToast({
title: "跳转失败" + error,
icon: 'error'
})
}
})

预期结果:

uni.redirectTo({
url: "/pages/detail-cert?id=1",
fail: (error) => {
uni.showToast({
title: "跳转失败" + error,
icon: 'error'
})
}
})

实际结果:

跳转失败"

bug描述:

iPhone 13 手机os 15.6   iPhone XR  手机os 13   在APP 启动  点击操作 页面栈的深度达到4后..页面点击不跳转.      返回首页 点击按钮也不跳转. 点击导航也不跳转

1 回复

从描述来看,这个问题可能是iOS平台上页面栈深度限制导致的。以下是可能的原因和解决方案:

  1. iOS平台对页面栈深度有限制,超过10层后可能导致跳转失败。建议在跳转前检查当前页面栈深度:
if(getCurrentPages().length >= 10){
    uni.redirectTo({url}) // 使用redirectTo替换navigateTo
}
  1. 检查路由配置是否正确,确保"/pages/detail-cert"路径在pages.json中有正确定义。

  2. 建议在fail回调中打印完整错误信息:

fail: (error) => {
    console.log('跳转错误详情:', error)
    uni.showToast({
        title: "跳转失败" + JSON.stringify(error),
        icon: 'error'
    })
}
  1. 可以尝试使用reLaunch方法重置页面栈:
uni.reLaunch({
    url: "/pages/detail-cert?id=1"
})
回到顶部