之前发过类似帖子 沉了,再发一下,希望有好的建议。
页面初始化时,使用history.pushState
添加历史,让用户可以点击返回按钮。
点击返回时触发 window.onpopstate
或 window.onhashchange
事件来返回到指定地址.
测试很多手机 安卓版本微信 v7.0.14
返回无效,不触发 onpopstate
或 onhashchange
,导致无法返回而直接退出到微信界面。
个人测试,似乎必须通过手指点击页面任何部分才会触发(应该是微信针对该功能了,如果用户没有操作页面就不响应onpopstate
或onhashchange
)
那在 onhashchange 和 onpopstate 无法触发的前提下,如何让用户点击返回时,返回到指定地址呢?
1
coolicer 2020-05-25 19:04:28 +08:00 via iPhone
内嵌页?
|
2
chengxy 2020-05-25 20:39:51 +08:00
这就是微信哦!
|
3
cl903254852 OP @coolicer 可以说下思路吗?
|
4
Ausmo 2020-05-27 22:02:41 +08:00
我也遇到了,微信内浏览器监听阻止了用户返回,在有些安卓机上就不行,用的 nextjs 的 Router.beforePopState,跟监听 popState 好像差不多一个道理,在某些安卓机上就是不好使,从企业微信进就没这问题,真是服了
|
5
cl903254852 OP @Ausmo 从 7.0.14 就不行了,你那边有解决方法了吗
|
6
Ausmo 2020-05-28 10:01:29 +08:00
@cl903254852 目前还没有 难搞
|
7
Ausmo 2020-05-28 11:54:15 +08:00
我的需求是用户退出回到登录页后再返回时停留在登录页,用的 nextjs 我把登出跳转到登录页不用 location.href,用 next 路由的 Router.push,然后在登录页监听 next 的 Router.beforePopState,最终可以了,都能监听到,但是原生的 popState 还是不能监听,确实必须用户碰一下页面再返回时这个事件才能触发。
|
8
biabia123456 2020-06-02 21:37:44 +08:00
心态炸了 也遇到这个问题 老哥解决了吗
|
9
Mindreading 2020-06-03 16:27:18 +08:00
我对比了几个安卓手机的 UA, 发现好像只有 chrome 版本在 70 以上的才有这种情况, 就算用微信 7.0.12 也是一样的,应该是谷歌浏览器内核的原因! 不是微信的原因~
|