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);
}
});
}
}
},
- 发布:2021-06-22 18:06
- 更新:2023-01-12 17:58
- 阅读:793
产品分类: 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"
}
报错
{
"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 报错。
1 个回复
s***@163.com
请问问题解决了吗?