QQSDK

看官网的文档,确实让人头疼的一件事,说是两个资源文件,就找到了一个(TencentOpenAPI.framework),Demo中也没有找到.

接下来具体实现:

导入库:

添加SDK依赖的系统库文件。分别是“Security.framework”,“libiconv.dylib”,“SystemConfiguration.framework”,“CoreGraphics.Framework”、“libsqlite3.dylib”、“CoreTelephony.framework”、“libstdc++.dylib”、“libz.dylib”

添加URL Types URL_Schemes = tencent+appid

发现配置完方法后不走回调.主要有一下两点,

1.添加白名单

<key>LSApplicationQueriesSchemes</key>
<array>
<string>mqq</string>
<string>mqqapi</string>
<string>mqqwpa</string>
<string>mqqbrowser</string>
<string>mttbrowser</string>
<string>mqqOpensdkSSoLogin</string>
<string>mqqopensdkapiV2</string>
<string>mqqopensdkapiV3</string>
<string>mqqopensdkapiV4</string>
<string>wtloginmqq2</string>
<string>mqzone</string>
<string>mqzoneopensdk</string>
<string>mqzoneopensdkapi</string>
<string>mqzoneopensdkapi19</string>
<string>mqzoneopensdkapiV2</string>
<string>mqqapiwallet</string>
<string>mqqopensdkfriend</string>
<string>mqqopensdkdataline</string>
<string>mqqgamebindinggroup</string>
<string>mqqopensdkgrouptribeshare</string>
<string>tencentapi.qq.reqContent</string>
<string>tencentapi.qzone.reqContent</string>
</array>
2 回调后的设置

AppDelegate.m 中引入(最好设置成全局的,登录时还要用到)

#import <TencentOpenAPI/QQApiInterface.h>
#import <TencentOpenAPI/TencentOAuth.h>
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
if ([url.host isEqualToString:@"qzapp"]) { [QQApiInterface handleOpenURL:url delegate:(id<QQApiInterfaceDelegate>)[QQApiNewsObject class]]; return [TencentOAuth HandleOpenURL:url]; } return YES;
}

登录VC 中实现

引入代理方法: TencentSessionDelegate

//声明变量
@property (nonatomic,strong) TencentOAuth * tencentOAuth;
//判断是否装QQ
- (void)lookQQAuth {
self.tencentOAuth = [[TencentOAuth alloc]initWithAppId:@"AppId" andDelegate:self];
BOOL isInstallQQ = [TencentOAuth iphoneQQInstalled];
if (isInstallQQ == NO) { [self.qqLogin setHidden:YES]; } }
//登录函数:
- (void)qqLoginBtnAction { NSString *appid = TencentAppid;
_tencentOAuth = [[TencentOAuth alloc] initWithAppId:appid andDelegate:self]; NSMutableArray * permission = [NSMutableArray arrayWithObjects:@[kOPEN_PERMISSION_GET_INFO, kOPEN_PERMISSION_GET_USER_INFO, kOPEN_PERMISSION_GET_SIMPLE_USER_INFO],nil]; [_tencentOAuth authorize:permission inSafari:NO];
} #pragma mark --------- qq登录状态回调 TencentSessionDelegate------
//登录成功:
- (void)tencentDidLogin
{
if (_tencentOAuth.accessToken.length > ) {
// 获取用户信息
[_tencentOAuth getUserInfo];
[_qqInfoDict setValue:_tencentOAuth.openId forKey:@"openid"];
} else {
NSLog(@"登录不成功 没有获取accesstoken"); }
} //非网络错误导致登录失败:
- (void)tencentDidNotLogin:(BOOL)cancelled {
if (cancelled) {
NSLog(@"用户取消登录");
} else {
NSLog(@"登录失败");
}
}
- (void)tencentDidNotNetWork {
NSLog(@"检查网络");
} // 获取用户信息
- (void)getUserInfoResponse:(APIResponse *)response { if (response && response.retCode == URLREQUEST_SUCCEED) { // 字符串 转字典 取用户信息
NSDictionary *userInfo = [NSString dictionaryWithJsonString:response.message]; // 开始登录(请求服务器)
[self qqLoginRequest]; } else {
NSLog(@"QQ auth fail ,getUserInfoResponse:%d", response.detailRetCode);
} }
 




iOS QQ 登录的更多相关文章

  1. iOS 第三方登录之 QQ登录

    一. 首先需要下载腾讯qq登录所需的库,下载地址是http://open.qq.com/ . 需要用到的有TencentOpenAPI.framework 和TencentOpenApi_IOS_Bu ...

  2. React Native 接入微博、微信、QQ 登录功能

    在 App 开发中我们经常需要在用户登录模块接入 SNS 登录组件,这样会大大提高用户的注册体验.特别当一个不是刚性需求 App 推广的时候,这样会很大的降低用户体验的成本,没有人愿意忍受输入邮箱.手 ...

  3. 第三方登录之qq登录(转载)

    iOS QQ第三方登实现   我们经常会见到应用登陆的时候会有QQ,微信,微博等的第三方登陆 如图: 下面我们主要讲一下qq的第三方登陆如何实现 首先,到官网注册: http://wiki.conne ...

  4. QQ登录-第三方SDK的接入总结(搜索 qq互联)

    由于项目的需要,使用了[QQ登录]SDK 的相关功能!   1.集成[QQ登录]SDK   [QQ登录]SDK下载地址: http://wiki.open.qq.com/wiki/website/SD ...

  5. QQ登录-第三方SDK的接入总结

    由于项目的需要,使用了[QQ登录]SDK 的相关功能!   1.集成[QQ登录]SDK   [QQ登录]SDK下载地址: http://wiki.open.qq.com/wiki/website/SD ...

  6. QQ登录的那些坑

    这几天在项目上面实现qq登录的功能,当功能做好后发现,同一个qq号登录之后腾讯返回的openid并不一样....(天啦噜啊~)然后查询文档以及咨询客服才知道注册申请时是有一个固定的套路的(不得不说,如 ...

  7. pc版qq登录及移动版qq登录的申请过程

    1.在哪里接入?    网站接入QQ登录在QQ互联(https://connect.qq.com)上创建:移动应用也可以在QQ互联(https://connect.qq.com)上创建,但是不推荐如此 ...

  8. 什么是“QQ登录OAuth2.0”

    1. 什么是“QQ登录OAuth2.0 OAuth: OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他 ...

  9. 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】

    说17号发超简单的教程就17号,qq核审通过后就封装了这个,现在放出来~~ 这个是我封装的一个开源项目:https://github.com/dunitian/LoTQQLogin ————————— ...

随机推荐

  1. 【LeetCode with Python】 Sort List

    博客域名:http://www.xnerv.wang 原题页面:https://oj.leetcode.com/problems/sort-list/ 题目类型: 难度评价:★ 本文地址:http:/ ...

  2. ThinkPHP5 安装自定义模块

    安装官方给的demo,在build.php文件中 <?php // +-------------------------------------------------------------- ...

  3. Xcode5.1.1+ios 7.1.2 免证书真机调试

    Xcode假设不破解.无法真机调试, 也无法编译真机Release文件.仅仅有付费开通Apple开发人员账号,才干申请真机调试.而Xcode进行破解后,结合越狱的iPhone或iPad, 就可以免官方 ...

  4. ETF到底是什么?

    ETF(交易所交易基金)是一种证券产品,它可以跟踪一些相关的资产,不论是股票.债券.商品,还是数字货币. ETF基金会负责跟踪指定的资产.然后放出部分股份,这些股份代表着对资产的拥有权. 交易ETF股 ...

  5. Linux struct itimerval使用方法

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/hbuxiaofei/article/details/35569229 先看一段代码 #include ...

  6. Android 属性动画ObjectAnimator和ValueAnimator讲解

    区别: ObjectAnimator 是直接对某个view进行更改. ValueAnimator 根据 TimeInterpolator 在不断产生相应的数据,来传进view  ,view自己做改变. ...

  7. 对于atomic nonatomic assign retain copy strong weak的简单理解

    atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作 1)atomic 设置成员变量的@property属性时,atomic是默认值,提供多线程安全 在多线程环 ...

  8. 人生苦短之Python装饰器

    在Python中函数也是一个对象,我们可以获得函数对象,然后执行函数 def func(): print('I am very good') a = func a 如果我们要是想增强这个函数呢?比如给 ...

  9. struts2 小例子(教训篇)

    学了一阵子的struts2了,到了最后,想自己写个小程序,发现最简单的配置文件都 竟然能弄错,是我这几天睡眠不足么.怎么可能,爱好这门的,怎么会这样.这样真的很伤心啊.小小心灵受不了这种打击啊.... ...

  10. Sports

    题目链接 : http://acm.hpu.edu.cn/problem.php?id=1184 或者       http://acm.nyist.net/JudgeOnline/problem.p ...