返回顶部

iOS SDK 环境搭建

说明

QQ登录iOS SDK 封装了QQ登录的登录授权以及大部分OpenAPI,应用只需要修改相应参数,不需要理解验证授权流程,即可快速实现QQ登录功能。

iOS平台上(iPad,iPhone,iPod)的应用,请在申请appid,appkey后,使用QQ互联提供的iOS SDK。

以前申请过 APPID 类似“QQXXXXXXXX”的开发商,建议重新申请。为了兼容旧版本的手机QQ,需要增加 URL Scheme,QQ + 十六进制新AppId,不足八位在首部补0。(如 appid=222222 则 scheme=QQ0003640E)

手机QQ SDK说明文档详见iOS SDKAPI使用说明。

本SDK仅适用于移动应用,即基于使用Implicit_Grant方式获取Access_Token接入的应用。

1. iOS SDK 下载

请到SDK下载页面下载最新版本QQ登录iOS SDK。

2. iOS SDK目录结构

iOS SDK包中带有两个文件:

2.1.framework打包了iOS SDK的头文件定义和具体实现。

2.2bundle 打包了iOS SDK需要的资源文件。

3. iOS SDK文件添加到工程中

3.1将iOS SDK中的TencentOpenAPI.framework和TencentOpenApi_IOS_Bundle.bundle文件拷贝到应用开发的目录下。

然后按下图所示添加到工程中。

 

3.2 添加SDK依赖的系统库文件。分别是 “SystemConfiguration.framework”,“ “libstdc++.tbd”。

在Xcode中打开工程配置文件,添加依赖库。

 

3.3直接在默认库文件中选择后点击“Add”,下图以添加“SystemConfiguration.framework”为例:

3.4返回后看到“SystemConfiguration.framework”已经在“Linked Frameworks and Libraries”中出现。

3.5修改必要的工程配置属性。

在工程配置中的“Build Settings”一栏中找到“Linking”配置区,给“Other Linker Flags”配置项添加属性值“-fobjc-arc”。

 

4. 修改必要的代码

4.1 修改工程配置文件

在XCode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type”添加一条新的“URL scheme”,新的scheme = tencent + appid。如果您使用的是XCode3或者更低的版本,则需要在plist文件中添加。Demo中我们注册的appid是222222。如下图

4.2 重写AppDelegate handleOpenURLopenURL方法

openURL:

handleOpenURL:

4.3 在代码中实现TencentSessionDelegate协议中的方法

具体协议可以参照TencentOpenAPI.framework /Headers中的TencentOAuth.h文件

4.4 初始化iOS SDK API数据对象TencentOAuth

(1) 创建TencentOAuth并初始化其appid,demo为222222。delegate为实现TencentSessionDelegate的对象:

这里delegate不能为空

(2) 初始化redirectURI(这里需要填写注册APP时填写的域名。默认可以不用填写。建议不用填写。demo中注册时的地址是“www.qq.com”):

(3)设置应用需要用户授权的API列表。

(建议如果授权过多的话,可能会造成用户不愿意授权。这里最好只授权应用需要用户赋予的授权。):

5. 调用SDK登录

1.登录时,调用TencetnOAuth对象的authorize方法:

  1. 2.登录完成后,会调用TencentSessionDelegate中关于登录的协议方法。
    登录成功:

非网络错误导致登录失败:

网络错误导致登录失败:

 

  1. 3.登录成功后,即可获取到access token和openid。accessToken和openid保存在TencentOAuth对象中。可以通过相应的属性方法直接获得。
  2. 4.建议应用在用户登录后,即调用getUserInfo接口获得该用户的头像、昵称并显示在界面上,使用户体验统一。