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需要明确指定目标页面路径,因此参数包含urlnavigateBack通过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] // 返回后的目标页面

