项目地址 : https://github.com/zhonggaorong/QQLoginDemo/tree/master
最新版本的qq登录实现步骤实现:
1. 首先,你需要去向腾讯申请账号。 地址:点击打开链接
2. 下载最新的SDK 地址: SDK下载
SDK内容如下:
1. doc: 为说明文档, 方法参数说明。
2.sample 这个是简单的demo
3. TencentOpenApi_IOS_Bundle.bundle 资源文件包
4. TencentOpenApi.framework 核心开发框架
接下来就进入正题:
1. 项目配置,手把手教学:
1. 新建一个工程。
2. 把TencentOpenApi.framework 和 TencentOpenApi_IOS_Bundle.bundle 拖入工程。
3. 配置项目。
3.1 添加依赖库:
3.2 在工程配置中的“Build Settings”一栏中找到“Linking”配置区,给“Other Linker Flags”配置项添加属性值“-fobjc-arc”
3.3 URLScheme 配置:
3.4 针对ios9以后,需要添加白名单。
在info.plist文件中加入 LSApplicationQueriesSchemes
对应的info.plist 的source code 为
- <key>LSApplicationQueriesSchemes</key>
- <array>
- <string>mqqapi</string>
- <string>mqq</string>
- <string>mqqOpensdkSSoLogin</string>
- <string>mqqconnect</string>
- <string>mqqopensdkdataline</string>
- <string>mqqopensdkgrouptribeshare</string>
- <string>mqqopensdkfriend</string>
- <string>mqqopensdkapi</string>
- <string>mqqopensdkapiV2</string>
- <string>mqqopensdkapiV3</string>
- <string>mqzoneopensdk</string>
- <string>wtloginmqq</string>
- <string>wtloginmqq2</string>
- <string>mqqwpa</string>
- <string>mqzone</string>
- <string>mqzonev2</string>
- <string>mqzoneshare</string>
- <string>wtloginqzone</string>
- <string>mqzonewx</string>
- <string>mqzoneopensdkapiV2</string>
- <string>mqzoneopensdkapi19</string>
- <string>mqzoneopensdkapi</string>
- <string>mqzoneopensdk</string>
- </array>
3.5 针对iOS9默认使用https,现在先还原成http请求方式。
在Info.plist中添加NSAppTransportSecurity
类型Dictionary
。
在NSAppTransportSecurity
下添加NSAllowsArbitraryLoads
类型Boolean
,值设为YES
第一步:在plist中添加NSAppTransportSecurity项,此项为NSDictionary
第二步:在NSAppTransportSecurity下添加 NSAllowsArbitraryLoads类型为Boolean,value为YES
4. 开始码代码了, 最欢乐的时刻:
1. 在刚刚新建的项目中 appdelegate.m, 添加代码:
1.引入头文件 :
- #import <TencentOpenAPI/QQApiInterface.h>
- #import <TencentOpenAPI/TencentOAuth.h>
2. 并遵循代理
- @interface AppDelegate ()<QQApiInterfaceDelegate>
- @end
3. 在添加跳转的请求方法
- -(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{
-
-
-
-
-
-
- [QQApiInterface handleOpenURL:url delegate:self];
- return [TencentOAuth HandleOpenURL:url];
- }
-
-
-
-
-
- - (void)onReq:(QQBaseReq *)req{
- NSLog(@" ----req %@",req);
- }
-
-
-
-
- - (void)onResp:(QQBaseResp *)resp{
- NSLog(@" ----resp %@",resp);
- }
-
-
-
-
- - (void)isOnlineResponse:(NSDictionary *)response{
-
- }
现在就是具体的登录controller.m了。
授权相关的字段
-
- FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_ADD_TOPIC;
-
-
- FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_ADD_ONE_BLOG;
-
-
- FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_ADD_ALBUM;
-
-
- FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_UPLOAD_PIC;
-
-
- FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_LIST_ALBUM;
-
-
- FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_ADD_SHARE;
-
-
- FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_CHECK_PAGE_FANS;
-
-
- FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_GET_INFO;
-
-
- FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_GET_OTHER_INFO;
-
-
- FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_GET_VIP_INFO;
-
-
- FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_GET_VIP_RICH_INFO;
-
-
- FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_GET_USER_INFO;
-
-
- FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_GET_SIMPLE_USER_INFO;
直接上源码, 源码里面有注释,一看就明白了