版权声明:本文为博主原创文章,未经博主允许不得转载。
(一)、腾讯开放平台创建应用 http://op.open.qq.com/manage_centerv2/ios?owner=897240781&uin=897240781
创建好之后我们可以获取到appID
之后点击上图中的《QQ登录》==》《应用调试者》填写测试QQ
(二)、下载SDK:http://wiki.open.qq.com/wiki/mobile/SDK%E4%B8%8B%E8%BD%BD
1、找到以下两个文件,拖入到工程中
2、托入工程后,添加需要的依赖库
3、修改必要的工程配置属性
在工程配置中的“Build Settings”一栏中找到“Linking”配置区,给“Other Linker Flags”配置项添加属性值“-fobjc-arc”
(四)、代码实现
1、在AppDelegate.m中 添加
#import <TencentOpenAPI/TencentOAuth.h>
2、重新下面两个方法
3、在你QQ登录界面声明一个
TencentOAuth *tencentOAuth 对象,然后在QQ登录按钮的点击事件中
4、实现代理方法
做到这基本能实现登录了
(五)、过程中遇到的问题
1. l_OBJC_PROTOCOL_$_TencentApiInterfaceDelegate", referenced from: 和 linker command failed with exit code 1 (use -v to see invocation)
这个问题重点还是在 <TencentSessionDelegate> 这代理的警告: Cannot find protocol definition for 'TencentsessionDelegate'
这种明明都能运行还说我没有定义的警告,是因为你这个协议虽然定义了,但是你这个协议可能还遵守了XX协议,然后这个XX协议没有定义导致会报这种警告,所以遇到这种警告要往“父协议”找。 举个栗子,上面这行就是腾讯授权的库里面报的警告
注: 解决办法 :此协议遵守了TencentApiInterfaceDelegate协议,在TencentOAuth.h类中#import "TencentApiInterface.h" 警告就没有了
现在就应该可以运行了
2.如果你的输出信息是 xxxx - error: "This app is not allowed to query for scheme xxxx"
(在这里因为我的 App 集成了分享到QQ、微信、微博的功能,xxxx部分我看到了 mqq、wechat、sinaweibosso 等多条信息)
解决办法: 去 Info.plist 里面建立一个叫 LSApplicationQueriesSchemes 的 Array,把你在xxxx部分看到的词汇一个一个填进去,直至控制台没有任何相关输出即可。
// 若有问题后面再完善
本文详细介绍了如何在iOS应用中集成QQ第三方登录功能,包括在腾讯开放平台注册应用、下载并配置SDK、实现代码逻辑等步骤,并针对实现过程中可能遇到的问题提供了解决方案。
4万+





