QQ、微信、微博接入
通用说明
所有第三方登录都需遵循以下步骤:
- 注册第三方应用的AppID、Key、Secret
- 添加第三方SDK及其所需系统依赖库,各文档内有详细说明,若依旧编译错误请参考下图加入所有库:
- 在Targets->Info->URL Types添加各自的URL Schemes
- 在info.plist添加LSApplicationQueriesSchemes字段并添加白名单
- 在AppDelegate中初始化,各自回调,实现代理
- 具体请看下文
QQ接入
官方文档
2.1 配置QQ需要的静态库,分别是
1 | ”Security.framework”, “libiconv.dylib”,“SystemConfiguration.framework”, |
2.2 在配置文件Info.plist中配置应用白名单,必须添加以下所有字段,否则可能无法跳转
1 | <key>LSApplicationQueriesSchemes</key> |
2.3 点击XCode项目名,选择Info,添加腾讯的URL Types
identifier填tencent URL Schemes:tencent前缀后+QQ App ID(用户自己申请的账号)
2.4 在AppDelegate中配置
1 | // 1 |
2.5 构建单例工具类
1 | static CIAccountThirdLoginUtil *thirdLogin; |
2.6 在工具类中构建登录QQ方法
1 | - (void)loginQQSuccess:(void (^)(id response))successBlock failure:(void (^)(NSError *error))failureBlock{ |
2.7 实现QQ代理方法
1 |
|
2.8 登录时调用工具类的loginQQ方法
1 | [thirdLoginUtil loginQQSuccess:^(id response) { |
微信接入
官方文档
2.1 配置微信需要的静态库,分别是
1 | "SystemConfiguration.framework","libz.dylib","libsqlite3.0.dylib","libc++.dylib" |
2.2 在配置文件Info.plist中配置应用白名单,必须添加以下所有字段,否则可能无法跳转
1 | <key>LSApplicationQueriesSchemes</key> |
2.3 点击XCode项目名,选择Info,添加微信的URL Types
identifier:weixin URL Schemes:weixin前缀后+QQ App ID(用户自己申请的账号)
2.4 在AppDelegate中配置
1 | // 1 |
2.5 为微信创建一个另外的单例工具类 实现如下方法
1 |
|
2.6 在工具类中构造loginWX方法
1 | - (void)loginWXSuccess:(void (^)(id response))successBlock failure:(void (^)(NSError *error))failureBlock{ |
2.7 登录时调用工具类的loginWX方法
1 | [thirdLoginUtil loginWXSuccess:^(id response) { |
2.8 tips
- 开发者接入微信登录时,先检测用户手机是否已安装微信客户端(使用sdk中isWXAppInstalled函数 ),对未安装的用户隐藏微信登录按钮,只提供其他登录方式
- 微信自身有一个bug,如果未登录微信返回后没有回调接口,无法判断到回调
微博接入
官方文档
2.1 在配置文件Info.plist中配置应用白名单,必须添加以下所有字段,否则可能无法跳转
1 | <key>LSApplicationQueriesSchemes</key> |
2.2 点击XCode项目名,选择Info,添加微博的URL Types
identifier:wb URL Schemes:wb前缀后+Weibo App ID(用户自己申请的账号)
2.3 在AppDelegate中配置
1 | // 1 |
2.4 工具类中构造loginWB方法
1 | - (void)loginWeiBoSuccess:(void (^)(id response))successBlock failure:(void (^)(NSError *error))failureBlock{ |
2.5 登录时调用loginWB方法
1 | [thirdLoginUtil loginWeiBoSuccess:^(id response) { |