iOS 微信登录巨坑:不出现授权界面,不走OnResp回调

前两天做微信授权登录,各种导入都正常,微信文档自测也通过了,微信自检函数也通过了,但是结果是:可以打开微信,打开微信就结束了,一直不出现授权界面。  于是在这个问题上耗费了整整2天时间,发现了微信的一个巨坑,哭笑不得。

先看下,微信自检函数输出截图:


iOS 微信登录巨坑:不出现授权界面,不走OnResp回调_第1张图片
自检函数输出结果

自检函数输出:All Check Passed!  代表自检通过,最起码Universal Link 是没问题的,这一步大家就可以不用看了。

然后正式调用微信,如下图书写:

iOS 微信登录巨坑:不出现授权界面,不走OnResp回调_第2张图片
iOS 微信登录巨坑:不出现授权界面,不走OnResp回调_第3张图片
调用微信

在上图中,微信有个接口判断是否打开微信备注:经2楼大神解释,明白这一步的功能只为调起微信,即只要打开了微信,执行结束,所以这一步只做测试用),我当时想的是一步步走,于是就加上了这句。好的,运行程序,出现了结果:

iOS 微信登录巨坑:不出现授权界面,不走OnResp回调_第4张图片
调起微信

到这步就停止了,微信的授权界面一直不出现。

于是两天之内,又是跟后台调universal link的文件夹,又是搜问题,其中微信log里还出现了错误:Error:fail to load Keychain status:-25300, keyData null:1,网上的解决办法一般是在APPdelegate里面加入一个方法,如下图:

iOS 微信登录巨坑:不出现授权界面,不走OnResp回调_第5张图片
添加方法

但依旧只能调起微信,不出现授权登录界面,当然也不会走回调方法,无法拿到用户信息等。

经过两天查找,最后一步一步一点一点注释,终于发现了BOOL isopen = [WXApi openWXApp];微信的这个方法加入之后,不会出现授权界面,也不会进入回调不知道什么原因,反正它就是影响授权。然后进行修改:

iOS 微信登录巨坑:不出现授权界面,不走OnResp回调_第6张图片
修改后

这样,就可以进行授权,进入OnResp:回调,拿到相关信息了。

iOS 微信登录巨坑:不出现授权界面,不走OnResp回调_第7张图片
通过回调获取信息

具体的原理也不清楚,希望知道的大神解释一下。

好了,整理出来给大家做个参考,希望大家不要踩坑,集成顺利。

你可能感兴趣的:(iOS 微信登录巨坑:不出现授权界面,不走OnResp回调)