前言:记录一下接入微信登录的过程中可能遇到的问题
如果是出现明明已经安装了微信但是显示出来的是没有安装微信,可能出现的问题的地方有:
1.TARGETS->Info->URL Types处申请的appid是否填写对了;
2.检查Info.plist文件中是否添加了LSApplicationQueriesSchemes 子项的weixin;
如果没有配置,这种一般都是会有相应的日志文件的提示 -canOpenURL: failed for URL: "weixin://app/wxd930ea5d5a258f4f/" - error: "This app is not allowed to query for scheme weixin"
3.在AppDelegate.m或者是你的项目的启动的代理.m文件中,注册微信的appid的地方尽量写在比较靠前的位置(这个在测试Demo的过程中,真的可能导致检测是否安装微信有误);[WXApi registerApp:@"wxd930ea5d5a258f4f"]; 这句话尽量写得靠前些。 这里我用的appid是官方提供的做的展示。其实这种初始化第三方SDK需要时间的情况,以前接入直播相关的SDK的时候也有遇到过类似的问题。当时还导致过播放的内容只有声音没有画面的问题
后续的内容可能遇到的问题
1.注意代理设置 协议遵守 实现代理方法等等这些可能也会有所忽略点
2.注意相应的接口的使用,要理解清楚所需传入的参数,请求的地址,请求的方法等等
比如说:这个grant_type的填写authorization_code 指的是让你填写这个字符串在Get请求的urlString那里,而不是平台给你的某些变量信息
grant_type | 是 |
填authorization_code |
举例子这部分授权的Get请求的URLString是这样的:
NSString *wechatAuthStr = [NSString stringWithFormat:@"https://api.weixin.qq.com/sns/oauth2/access_token?appid=%@&secret=%@&code=%@&grant_type=authorization_code",kWechatAuthOpenID,wechatAuthCodeString,kWechatAppSecretStr];
3.还有在进行Get请求的时候如果是使用的AFNetWorking中的AFHTTPSessionManager的话,manager的默认的是这样的
manager.responseSerializer.acceptableContentTypes
{(
"application/json",
"text/json",
"text/javascript"
)}
在做相应的请求的时候需要添加上"text/plain"否则报错如下:
Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/plain" UserInfo={NSLocalizedDescription=Request failed: unacceptable content-type: text/plain.....
参考网址:
iOS微信接入指南
移动应用微信登录开发指南
授权后接口调用(UnionID)
http://blog.csdn.net/zhonggaorong/article/details/51719050
iOS交流群欢迎你的加入!
群二维码:
先写到这么多
如有问题,敬请指正;
如需转载,请注明出处,谢谢!