javascript - 微信公众号授权,重定向之后一直在加载状态?
天蓬老师
天蓬老师 2017-04-11 11:21:18
[JavaScript讨论组]

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

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

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

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

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(2)
阿神

找到问题所在了!

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

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

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

迷茫

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号