uni-app uni.onPageNotFound 这个方法获取不到不存在页面的 query 参数
uni-app uni.onPageNotFound 这个方法获取不到不存在页面的 query 参数
操作步骤:
- 浏览器打开不存在项目页面,地址带上参数
预期结果:
- onPageNotFound回调参数能获取query参数
实际结果:
- onPageNotFound回调参数不能获取到query参数
bug描述:
- uni.onPageNotFound 这个方法获取不到不存在页面的 query 参数

相关链接:
| 项目信息 | 详情 |
|---|---|
| 产品分类 | uniapp/H5 |
| PC开发环境 | Windows |
| PC开发环境版本 | Microsoft Windows [版本 10.0.26100.6899] |
| 浏览器平台 | Chrome |
| 浏览器版本 | 版本 141.0.7390.78(正式版本) (64 位) |
| 项目创建方式 | CLI |
| CLI版本号 | 4.5.15 |
更多关于uni-app uni.onPageNotFound 这个方法获取不到不存在页面的 query 参数的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
感谢反馈,问题已复现,已加分
更多关于uni-app uni.onPageNotFound 这个方法获取不到不存在页面的 query 参数的实战教程也可以访问 https://www.itying.com/category-93-b0.html
im里面私聊,我发你临时解决方案
在 uni-app 中,uni.onPageNotFound 目前确实存在无法获取不存在页面 query 参数的问题。从你提供的截图和描述来看,回调参数中的 query 对象为空,这是框架层面的限制。
问题分析:
onPageNotFound主要用于捕获路由失败事件,但其参数设计主要提供路径信息(path),并未完整解析 query 参数- 在 H5 平台,当访问不存在的页面时,框架可能未对 URL 进行完整的参数解析就触发了该回调
临时解决方案: 你可以手动从 URL 中提取参数:
uni.onPageNotFound((res) => {
const url = res.path; // 获取路径
const queryString = url.split('?')[1]; // 手动解析参数
const queryParams = new URLSearchParams(queryString);
console.log('手动解析的参数:', Object.fromEntries(queryParams));
})

