项目常见问题(二)

作者: bigParis | 来源:发表于2017-02-14 09:04 被阅读191次

QQ登录是一个很常见的功能, 也有很多第三方库帮我们实现了这样的功能, 今天提到的是一个UI上的问题.

问题重现

1 点击QQ登录按钮, 呼出QQ登录授权页面.
2 点击授权, 进行登录.
3 退出登录.
4 再次点击QQ登录按钮, 这次唤起的是WEB页面

why? 明明已经安装了QQ, 为什么会唤起WEB, 应该调到QQ客户端的授权页面才对啊!

产生问题的原因

点击QQ登录按钮会执行这样的代码

NSArray *permissions = [NSArray arrayWithObjects:@"get_user_info", @"add_share", nil];
[_tencentOAuth authorize:permissions inSafari:NO];

为什么第二次点击的时候会有问题? 因为当我们退出的时候没有调用

[_tencentOAuth logout:self];

这里相当于摘掉代理, 但是_tencentOAuth还是有值的.
所以再次点击QQ登录按钮的时候要这样做

NSArray *permissions = [NSArray arrayWithObjects:@"get_user_info", @"add_share", nil];
_tencentOAuth = [[TencentOAuth alloc] initWithAppId:kTencentQQSDKDemoAppId andDelegate:self];
_tencentOAuth.redirectURI = @"www.qq.com";
[_tencentOAuth authorize:permissions inSafari:NO];

这样再次点击的时候就重新创建了一个_tencentOAuth也不会产生二次添加代理的问题. 至此, 问题解决了.

总结: 有些时候, 我们使用一些第三方SDK或者框架, 可能SDK或者框架本身并没问题, 而是我们使用者用的时候没有真正读懂第三方的用法, 相信通过这样的例子, 会让我们了解, 使用第三方的东西的时候一定要深度了解一下, 否则有时候产生了问题真的是很难处理的.

相关文章

  • 项目常见问题(二)

    QQ登录是一个很常见的功能, 也有很多第三方库帮我们实现了这样的功能, 今天提到的是一个UI上的问题. 问题重现 ...

  • 终端管理Git仓库

    目录 一,通过终端创建项目 二,常见问题 三,参考资料 说明:Mac上使用,持续更新; 一,通过终端创建项目 1....

  • 社群运营-方法论

    一、群管理的价值 二、群管理的方法 【从群问题的角度拆解】 常见问题一 常见问题二 常见问题三

  • day 34综合架构 全网备份项目

    课程介绍部分 一.课程回顾 二.补充: nfs服务常见问题: 三.全网备份项目部署说明 四.全网备份需求完成阶段 ...

  • linux4-开发环境搭建&常见问题

    一、安装开发环境 二、常见问题

  • 成长工场:运营居家养老的八大法则

    社区养老三个常见问题 第一个问题是项目立不住。经验很少,教训很多,很多项目做一做就黄了,经不起时间的考验。 第二个...

  • 石油化工转动设备常见问题汇总与分析

    转动设备施工常见问题汇总与分析 结合本人海外8年项目转动设备施工经验特对施工常见问题进行如下的汇总和浅析: 1.基...

  • Linux下ndk编译移植FFmpeg到Android平台

    简介 linux下编译FFmpeg Android项目使用FFmpeg 编译运行 常见问题 linux下编译FFm...

  • 基础02

    定时任务 方法1:performSelector 方法2:GCD 方法3:NSTimer 常见问题 项目里面的某个...

  • iOS定时器方法

    定时任务 方法1:performSelector 方法2:GCD 方法3:NSTimer 常见问题 项目里面的某个...

网友评论

    本文标题:项目常见问题(二)

    本文链接:https://www.haomeiwen.com/subject/mnjtwttx.html