首页 > 微信公众号授权,重定向之后一直在加载状态?

微信公众号授权,重定向之后一直在加载状态?

使用angularjs开发,获取openid的方法是:
调用接口获取openid,若已有openid,则返回openid,若没有,则返回授权重定向地址。

遇到的问题是,在微信web开发者工具中调试时,获取openid很顺利,但在iPhone上测试的时候,发现重定向之后页面一直处于加载状态,必须要手动刷新才能加载成功,只有加载成功之后才能获取到openid。

想了一个很取巧的办法,重定向之后的链接是带code的,所以初始化时,会判断是否有code字段,若有,则强制刷新一次,并给url带上任意一个参数,比如segment,等再次进入该页面时,若同时存在code和segment,则进行正常页面渲染。但是这种方法在iPhone上用的时候,仍然出现了加载不出来的情况。

求问这是什么原因?有什么比较好的解决方案吗?


找到问题所在了!

源码参见提问评论,location.href重定向在微信浏览器无效,所以使用返回的redirect_uri是没法重定向授权的,想要切换页面只能使用触发(使用location切换页面的方法是google出来的)。

我现在的做法是,进入需要获取openid的页面,获取redirect_uri,然后跳转至一个引导页(该引导页是使用ui router做的跳转),并把redirect_uri作为参数加到引导页的uri上,引导用户点击页面上a标签,a标签的href就是redirect_uri啦。这种做法相当于是引导用户手动刷新重定向之后的页面。

anyway,这种方案算是暂时解决问题了,但期望微信浏览器能尽早解决这个问题。


我现在一般都百度生成二维码,直接在手机上实现重定向

【热门文章】
【热门文章】