前两天做微信授权登录,各种导入都正常,微信文档自测也通过了,微信自检函数也通过了,但是结果是:可以打开微信,打开微信就结束了,一直不出现授权界面。 于是在这个问题上耗费了整整2天时间,发现了微信的一个巨坑,哭笑不得。
先看下,微信自检函数输出截图:
自检函数输出:All Check Passed! 代表自检通过,最起码Universal Link 是没问题的,这一步大家就可以不用看了。
然后正式调用微信,如下图书写:
在上图中,微信有个接口判断是否打开微信(备注:经2楼大神解释,明白这一步的功能只为调起微信,即只要打开了微信,执行结束,所以这一步只做测试用),我当时想的是一步步走,于是就加上了这句。好的,运行程序,出现了结果:
到这步就停止了,微信的授权界面一直不出现。
于是两天之内,又是跟后台调universal link的文件夹,又是搜问题,其中微信log里还出现了错误:Error:fail to load Keychain status:-25300, keyData null:1,网上的解决办法一般是在APPdelegate里面加入一个方法,如下图:
但依旧只能调起微信,不出现授权登录界面,当然也不会走回调方法,无法拿到用户信息等。
经过两天查找,最后一步一步一点一点注释,终于发现了:BOOL isopen = [WXApi openWXApp];微信的这个方法加入之后,不会出现授权界面,也不会进入回调。不知道什么原因,反正它就是影响授权。然后进行修改:
这样,就可以进行授权,进入OnResp:回调,拿到相关信息了。
具体的原理也不清楚,希望知道的大神解释一下。
好了,整理出来给大家做个参考,希望大家不要踩坑,集成顺利。