uni-app api 拦截器invoke 参数缺少 url

uni-app api 拦截器invoke 参数缺少 url

开发环境 版本号 项目创建方式
Windows w10 HBuilderX
### 示例代码:


```javascript
uni.addInterceptor('navigateTo', {invoke(e){
形参 e 参数正确有返回要跳转的页面
{
"url": "/pages/share/index",
"openType": "appLaunch",
"success": "function() { [native code] }",
"fail": "function() { [native code] }"
}
}})  
uni.addInterceptor('navigateBack', {invoke(e){
形参 e 参数不正确没有返回 url 地址
{
"from": "backbutton",
"success": "function() { [native code] }",
"fail": "function() { [native code] }"
}
}})  

### 操作步骤:
api 拦截监听

### 预期结果:


```json
{
"url": "/pages/share/index",
"openType": "appLaunch",
"success": "function() { [native code] }",
"fail": "function() { [native code] }"
}

返回跳转的url 地址


### 实际结果:


```json
没有返回
{
"from": "backbutton",
"success": "function() { [native code] }",
"fail": "function() { [native code] }"
}

### bug描述:

api uni.addInterceptor 拦截器  navigateBack 拦截  invoke 返回的参数不对 有问题 其他路由拦截无误 拦截后退按钮 ‘’

错误返回
```json
{
"from": "backbutton",
"success": "function() { [native code] }",
"fail": "function() { [native code] }"
}

正确返回应该

{
"url": "/pages/share/index",
"openType": "appLaunch",
"success": "function() { [native code] }",
"fail": "function() { [native code] }"
}

返回参数里面 没有 url 返回页面参数


更多关于uni-app api 拦截器invoke 参数缺少 url的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app api 拦截器invoke 参数缺少 url的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在 uni-app 中,navigateBack 拦截器的 invoke 参数确实不包含 url 字段,这是框架的预期行为,不是 bug。

navigateBack 的作用是返回上一页面或多级页面,其参数结构与 navigateTo 不同:

  • navigateTo 需要明确指定目标页面路径,因此参数包含 url
  • navigateBack 通过 delta 参数指定返回的页面数,不涉及具体页面路径,因此参数中不包含 url

正确的 navigateBack 拦截器参数结构应为:

{
  "from": "backbutton",
  "delta": 1,
  "success": function() {},
  "fail": function() {}
}

如果你需要获取返回的目标页面信息,可以通过页面栈管理实现:

const pages = getCurrentPages()
const currentPage = pages[pages.length - 1]
const targetPage = pages[pages.length - 2] // 返回后的目标页面
回到顶部