授权登录
如果用户没有安装手机QQ,且开发者具有webview权限,则显示账号密码登录页;
如果开发者没有webview权限,sdk版本大于等于2.9,则显示登录页,sdk版本小于2.9,则显示下载页。
由于跳转至下载页在当前苹果app审核有被拒风险,所以,希望开发者尽快升级使用最新版sdk。
整个授权过程可以分为,发送请求获取用户授权以及获取用户授权结果两个部分。
1)发送请求获取用户授权:
在取得用户授权之前,首先必须清楚自己需要用户的哪些信息,iOS SDK提供多种选择,开发者可以根据自己的需要请求用户不同信息的授权。具体可以获取的授权信息参见《获取用户授权参数说明》。
在设置完需要请求的授权信息之后,就可以发送请求了(备注:inSafari参数从iOS SDK1.3版本后废除) 。
NSArray* permissions = [NSArray arrayWithObjects:kOPEN_PERMISSION_GET_USER_INFO,kOPEN_PERMISSION_ GET_SIMPLE_USER_INFO,kOPEN_PERMISSION_ADD_SHARE,nil]; |
2) 获取用户授权结果
获取用户授权结果,采用的是代理回调的方式,所以开发者需要实现TencentLoginDelegate协议,登录结果分为三种:登录成功、登录失败和登录取消。
- (void)tencentDidLogin; // 登录成功后的回调 |
如果登录成功,则开发者可以通过实现TencentLoginDelegate协议中的以下方法获取:
// 登录时权限信息的获得 |
当id<TencentLoginDelegate>实现了如下接口
/** |
并且强制返回了YES,那么无论本地是否安装了手Q,调用授权登录接口都会直接拉起网页。