微信分享 ios分享失败
问题定位了很久,安卓没有问题,ios就是分享不成功/(ㄒoㄒ)/~~
背景:
在微信授权的时候,用户同意授权,获取code,如果用户同意授权,页面将跳转至redirect_uri/?code=CODE&state=STATE。
拿到code之后,可以去获取用户的openid
。但是因为code
只能用一次,所以在获取到openid
之后,利用window.history.pushState()
方法,清空了location.search
window.history.pushState({}, '', window.location.origin + window.location.pathname + window.location.hash);
ios微信不支持history.pushState
方法,查了很多的资料,贴两个典型的问题
ios微信开网页history.pushState页面链接不改变,4年的老问题了
history.pushState 苹果微信浏览器无效
解决方法:
我直接将openid放到localStorage里面,然后用window.location.href强制重新刷了页面。因为我页面需要保存的变量不多,所以改成window.location.href不是特别麻烦。但是如果页面很复杂,需要保存的变量很多,那就很麻烦,暂时没找到很好的解决办法。
记录一下,有好的解决方式再来更新