根据joinId来决定是否重定向网页来得到微信网页授权。
当前页面为qlUpdate,qlUpdate为qucikLoginUpdate的简写。
joinId有值,则重定向到网页qlUpdateByScan。joinId是通过扫码传过来的queryString参数,参数名为id。
扫码后先进入到qlUpdate页面,但是一键登录需要微信网页授权,而微信网页授权不得不进行的操作是重定向页面。
为了解决微信网页授权问题,一比一复刻了qlUpdate页面元素到qlUpdateByScan,joinId有值,意味着是通过扫码来一键登录,需要重定向到qlUpdateByScan页面;无值则是通过常规按钮单击事件来进行微信网页授权,在单击按钮时已经进行了网页的重定向,所以在qlUpdate页面即可一键登录。
常规手机号登录/注册
微信快捷登录
主页页面
扫码的地理授权问题的解决
通过常规的操作进到首页后,微信平台会给一个授权地理位置的弹窗。而通过扫码后登录进到首页,这个授权地理位置的弹窗没有了,逐步排查问题原因,发现是扫码后的登录,在进入首页时的URL里有code和state的信息导致的。
所以在拿到微信用户信息后,可通过js的重定向技术再重定向到首页,进而可拿到地理位置授权弹窗。
效果