zhangrl
zhangrl
  • 发布:2022-04-08 15:01
  • 更新:2022-04-09 10:33
  • 阅读:635

【报Bug】webview加载h5页面,物理键返回会让h5 页面back两级,从而中断http请求,导致客户端报错

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 10

HBuilderX类型: 正式

HBuilderX版本号: 3.2.16

手机系统: Android

手机系统版本号: Android 12

手机厂商: 小米

手机机型: k40

页面类型: vue

vue版本: vue2

打包方式: 离线

项目创建方式: HBuilderX

示例代码:
 onBack() {  
            ab_.debug && console.log('webview canBack')  
            webview.canBack(function(e) {  
                if (e && e.canBack) {  
                    ab_.debug && console.log('canBack')  
                   webview.back()  
                } else {  
                    ab_.debug && console.log('navBack')  
                    navBack ? navBack() : abUni.navigateBack()  
                }  
            })  
        },  

操作步骤:

首页-页面-详情 ;物理键返回

预期结果:

正常返回上一级路由

实际结果:

返回两级h5路由,且中断二级页面请求

bug描述:

本项目为webview加载h5页面,从h5页面a跳转b页面然后去c页面,物理键返回会让h5 页面back两级,从而中断http请求,导致客户端报错,现象请看附件视频;最神奇是,本地运行自定义基座还是好的

2022-04-08 15:01 负责人:无 分享
已邀请:
小枫叶

小枫叶 - 外包接单加v:wlmk1234567 注明来意

能否给一个能复现的demo

uniapper

uniapper - abc

创建webview时设置一下返回键的处理方式。见文档:

https://www.html5plus.org/doc/zh_cn/webview.html#plus.webview.WebviewStyles

backButtonAutoControl: (String 类型 )Webview窗口自动处理返回键逻辑

当Webview窗口在显示栈顶,并且Webview窗口中没有调用JS监听返回键(plus.key.addEventListener('backbutton',...))时按下返回键响应行为。 可取值: "hide" - 隐藏Webview窗口,隐藏动画与上一次调用显示时设置的动画类型相对应(如“slide-in-right”对应的关闭动画为“slid-out-right”); "close" - 关闭Webview窗口,关闭动画与上一次调用显示时设置的动画类型相对应(如“slide-in-right”对应的关闭动画为“slid-out-right”) ; "none" - 不做操作,将返回键传递给下一Webview窗口处理; "quit" - 退出应用。

该问题目前已经被锁定, 无法添加新回复