安卓小程序webview中H5页面跳转后 返回后直接关闭了webview( history栈丢失)
2022.1.4更新 新年快乐 前段时间比较忙,一直忘了更新此帖子 12月底的时候 跟微信官方技术哥哥 一起跟踪复现了这个问题,据说原因是 安卓客户端 在后退的时候干掉了后退历史,导致返回不正常,目前开发小哥已经紧急的修复了这个问题,目前应该还没有上线. 我把微信包发出来,遇到相同问题的朋友,可以用此测试包试试 链接:[图片]https://share.weiyun.com/C9pTvlUg 密码:8rr2ii ------------------------------------------------------------------------------------------------- 12.16晚更新 自己用原生小程序新写了个DEMO ,webview中集成相同的web地址,同一设备,同一微信,所有路由逻辑均正常, 破案了, 那此次问题的出现大概率是跟公司小程序框架有关, 公司小程序是用uni-app开发的,踩雷:( ------------------------------------------------------------------------------------------------- 12.16更新 经过排查 发现webview组件内 页面跳转时 history栈会丢失 length始终为1 返回会直接关闭webview ,微信浏览器 正常 原以为是popstate事件无法监听,原来是history栈 在页面跳转时丢失 踩坑 评论里面 我贴了一些 跟我类似的问题帖子,希望官方大大能跟进 ----------------------------------------------------------------------------------------------------------- 最近在小程序中调试webview, 因为小程序原生标题栏无法隐藏,所以隐藏了H5标题栏 ,项目是vue单页面 和 多页面混用 ,单页面通过 使用history.pushState压入空连接 和监听 popstate 达到控制物理返回 及小程序左上角返回来实现路由逻辑 ,发现安卓设备使用物理返回以及左上角返回的时候无法监听popstate事件,webview直接关闭了,H5内页面无法正常返回到上一页, 期待结果是 history.go(-1), 测试安卓小程序webview不正常 微信浏览器正常 IOS小程序webview正常 微信浏览器和第三方浏览器也正常, 搜了社区发现很多人遇到这个问题 但是官方没有给解决方案. 本人测试设备 魅族16X VIVOZ3 OPPO 小米 均有问题 引入如下代码 在小程序内无效 try {
window.tbs_bridge.nativeExec('network', 'type', 0, null);
} catch (e) {
console.error(e);
}