V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cl903254852
V2EX  ›  程序员

安卓版本微信 v7.0.14 无法监听 hashchange 事件和 popstate 事件?

  •  
  •   cl903254852 · 2020-05-25 16:55:16 +08:00 · 2411 次点击
    这是一个创建于 1648 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前发过类似帖子 沉了,再发一下,希望有好的建议。

    页面初始化时,使用history.pushState添加历史,让用户可以点击返回按钮。

    点击返回时触发 window.onpopstatewindow.onhashchange 事件来返回到指定地址.

    测试很多手机 安卓版本微信 v7.0.14 返回无效,不触发 onpopstateonhashchange,导致无法返回而直接退出到微信界面。

    个人测试,似乎必须通过手指点击页面任何部分才会触发(应该是微信针对该功能了,如果用户没有操作页面就不响应onpopstateonhashchange

    那在 onhashchange 和 onpopstate 无法触发的前提下,如何让用户点击返回时,返回到指定地址呢?

    9 条回复    2020-06-03 16:27:18 +08:00
    coolicer
        1
    coolicer  
       2020-05-25 19:04:28 +08:00 via iPhone
    内嵌页?
    chengxy
        2
    chengxy  
       2020-05-25 20:39:51 +08:00
    这就是微信哦!
    cl903254852
        3
    cl903254852  
    OP
       2020-05-26 16:42:07 +08:00
    @coolicer 可以说下思路吗?
    Ausmo
        4
    Ausmo  
       2020-05-27 22:02:41 +08:00
    我也遇到了,微信内浏览器监听阻止了用户返回,在有些安卓机上就不行,用的 nextjs 的 Router.beforePopState,跟监听 popState 好像差不多一个道理,在某些安卓机上就是不好使,从企业微信进就没这问题,真是服了
    cl903254852
        5
    cl903254852  
    OP
       2020-05-28 09:46:30 +08:00
    @Ausmo 从 7.0.14 就不行了,你那边有解决方法了吗
    Ausmo
        6
    Ausmo  
       2020-05-28 10:01:29 +08:00
    @cl903254852 目前还没有 难搞
    Ausmo
        7
    Ausmo  
       2020-05-28 11:54:15 +08:00
    我的需求是用户退出回到登录页后再返回时停留在登录页,用的 nextjs 我把登出跳转到登录页不用 location.href,用 next 路由的 Router.push,然后在登录页监听 next 的 Router.beforePopState,最终可以了,都能监听到,但是原生的 popState 还是不能监听,确实必须用户碰一下页面再返回时这个事件才能触发。
    biabia123456
        8
    biabia123456  
       2020-06-02 21:37:44 +08:00
    心态炸了 也遇到这个问题 老哥解决了吗
    Mindreading
        9
    Mindreading  
       2020-06-03 16:27:18 +08:00
    我对比了几个安卓手机的 UA, 发现好像只有 chrome 版本在 70 以上的才有这种情况, 就算用微信 7.0.12 也是一样的,应该是谷歌浏览器内核的原因! 不是微信的原因~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1674 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:50 · PVG 00:50 · LAX 08:50 · JFK 11:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.