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()
}
})
},
- 发布:2022-04-08 15:01
- 更新:2022-04-09 10:33
- 阅读:746
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 10
HBuilderX类型: 正式
HBuilderX版本号: 3.2.16
手机系统: Android
手机系统版本号: Android 12
手机厂商: 小米
手机机型: k40
页面类型: vue
vue版本: vue2
打包方式: 离线
项目创建方式: HBuilderX
示例代码:
操作步骤:
首页-页面-详情 ;物理键返回
首页-页面-详情 ;物理键返回
预期结果:
正常返回上一级路由
正常返回上一级路由
实际结果:
返回两级h5路由,且中断二级页面请求
返回两级h5路由,且中断二级页面请求
bug描述:
本项目为webview加载h5页面,从h5页面a跳转b页面然后去c页面,物理键返回会让h5 页面back两级,从而中断http请求,导致客户端报错,现象请看附件视频;最神奇是,本地运行自定义基座还是好的
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" - 退出应用。