history.pushState 苹果微信浏览器无效

用js的如下方法,修改浏览器地址栏的url,不刷新网页
history.pushState
或history.replaceState

微信里面打开,安卓手机能实现效果。
iPhone手机,没有实现修改url的效果。

测试流程:
微信中打开url1 ---> history.pushState修改为url2
---> 点击微信界面右上角按钮,分享给好友/复制链接
---> 分享出的链接,iPhone手机是url1,安卓手机是url2

如果执行:
window.location.href
当前的值,则是url2 ,而分享给好友后,则是url1

如何解决iPhone手机的问题?

阅读 13.3k
5 个回答

安卓没有问题。ios版本微信的链接按照首次进入的链接来算,pushState无效。这个我做微信支付的时候遇到的坑,你注意一下

新手上路,请多包涵

请问这个问题怎么解决啊,我想要的就是分享给别人的地址是当前操作之后的地址

楼主这个问题搞定了么?求公布解决方案

新手上路,请多包涵

这个我通过使用添加location.hash和其判断来代替这个H5方法了。
ios系统巨坑。

遇到同样的问题,已经解决了。
思路:既然ios中是按首次进入的链接来算,那我们就把首次进入的url记录下来,在需要分享的页面中就使用这个url,具体怎么做看我这篇文章:https://www.jianshu.com/u/d8f...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题