微信分享 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不是特别麻烦。但是如果页面很复杂,需要保存的变量很多,那就很麻烦,暂时没找到很好的解决办法。

记录一下,有好的解决方式再来更新

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐