uni-app uni.onPageNotFound 这个方法获取不到不存在页面的 query 参数

uni-app uni.onPageNotFound 这个方法获取不到不存在页面的 query 参数

操作步骤:

  • 浏览器打开不存在项目页面,地址带上参数

预期结果:

  • onPageNotFound回调参数能获取query参数

实际结果:

  • onPageNotFound回调参数不能获取到query参数

bug描述:

  • uni.onPageNotFound 这个方法获取不到不存在页面的 query 参数

Image

相关链接:

项目信息 详情
产品分类 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));
})
回到顶部