vonfly
vonfly
  • 发布:2021-06-22 18:06
  • 更新:2023-01-12 17:58
  • 阅读:646

【报Bug】外部App打开指定页面,App.vue 生命周期中的onShow函数通过uni.navigateTo跳转页面,报错

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 3.1.17

手机系统: Android

手机系统版本号: Android 11

手机厂商: 华为

手机机型: 华为 mate 30

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
onShow: function() {  
		let args = plus.runtime.arguments;  
		if (args) {  
			const page = args.substring(args.indexOf('//') + 2, args.indexOf('&'));  
			const id = args.substring(args.indexOf('&') + 1);  
			const url = `pages/${page}/${page}?id=${id}`;  
			if (page && id) {  
				uni.navigateTo({  
					url: url,  
					fail: err => {  
                                                //这里报错,无法跳转成功  
						console.log(err);  
					}  
				});  
			}  
		}  
	},

操作步骤:
onShow: function() {  
		let args = plus.runtime.arguments;  
		if (args) {  
			const page = args.substring(args.indexOf('//') + 2, args.indexOf('&'));  
			const id = args.substring(args.indexOf('&') + 1);  
			const url = `pages/${page}/${page}?id=${id}`;  
			if (page && id) {  
				uni.navigateTo({  
					url: url,  
					fail: err => {  
                                                //这里报错,无法跳转成功  
						console.log(err);  
					}  
				});  
			}  
		}  
	},

预期结果:

每次跳转页面路由正常

实际结果:

报错

{  
	"errMsg": "navigateTo:fail page `/pages/home/pages/classCatagory/classCatagory?id=5116c4bc-7c8f-4a74-a122-5c7fe22e930c` is not found"  
}

bug描述:

外部App打开指定页面,App.vue 生命周期中的onShow函数通过uni.navigateTo跳转页面,报错信息:
"errMsg": "navigateTo:fail page /pages/home/pages/classCatagory/classCatagory?id=5116c4bc-7c8f-4a74-a122-5c7fe22e930c
期望的页面路径为/pages/classCatagory/classCatagory
实际为/pages/home/pages/classCatagory/classCatagory
目前可知原因:
app首次启动时,页面栈为空,可以直接跳转到目标页面,当第二次进入时此时页面栈中已经包含home(主页面),因此该api uni.navigateTo 报错。

2021-06-22 18:06 负责人:无 分享
已邀请:
s***@163.com

s***@163.com

请问问题解决了吗?

要回复问题请先登录注册