第三方登录是现在app很常用的功能,而这个功能我已经写过两三次了。。。每次都写大同小异的代码真的是很痛苦,而且每次都要根据说明去添加那些依赖库,配置linkFlag什么的,完全是体力活,所以一直想把这部分代码封装一下,方便以后复用。
然后受DWZShareKit的启发,想到可以用cocoaPods来添加依赖库,完成配置,所以赶紧把之前的想法付诸行动,写了个集成第三方登录的库。
具体如何使用及注意事项我已经写在工程的readme里面了,这里来说点其他的。
(说一键集成是夸张的修辞手法啦,申请appKey填写scheme什么的工作还是少不了的啦~)
 
一,思路
CocoaPods如何完成配置,如何工作的咱还没搞懂,所以只能说说我这里是怎么使用的
问题的关键就在 LXMThirdLoginManager.podspec 这个文件中,
.podspec  中有一些描述用的代码
s.libraries  表示这个pod依赖的 苹果官方的库,也就是类似libstdc++.a ,libsqlite.a 等等的a文件;
s.vendored_libraries 就表示用户自己的a文件,比如新浪微博SDK的libWeiboSDK.a ;
s.frameworks 表示pod依赖的 苹果的framework, 比如 UIKit,SystemConfiguration等等
s.vendored_frameworks, 表示pod依赖的自己的framework,比如qqSDK的TencentOpenAPI.framework;
(其他的就不一一列举了,具体的看CocoaPods的官网:https://cocoapods.org/about
(另外一个貌似是文档的参考地址:http://www.rubydoc.info/github/CocoaPods/Core/Pod/Specification/DSL
利用这些,把第三方登录SDK所依赖的文件全部加入这个pod中,那CocoaPods在加载这个pod的时候,就会顺便把第三方登录所依赖的库一起加载进去了。这样就不用我们每个工程都配置一次了~~~
CocoaPods会自动加入-ObjC的linkerFlag,这是方便呀~~
 
不过这样也有坏处:
1是各个SDK更新之后这里不会第一时间知道,也就没办法第一时间更新;
2是因为把各个SDK的文件都包含到了这个pod中,导致这个pod文件很大(大概6M),install的时候会比较耗时间,尤其是网速不给力的话,可能会pod不下来。。。
3是提供的方法比较单一,如果要其他功能还需要自己开发
 
但是这个库最大的目的是省我们配置的时间呀!!!想到这里我对它还是比较满意的。
 
 
二,代码实现
就代码的实现来说,这里是想应用下类似工程模式的设计模式,不知道用的对不对。。。
反正就是:
 
用一个统一的管理器(LXMThirdLoginManager)作为外部调用的统一入口,
内部为各个登录类型分别写一个helper类(这些类提供统一的调用接口),完成各自的登录逻辑,
再统一回调manager的方法返回结果(统一的result类)。
 
这样外部调用起来就很简单了,而且如果需要扩展的话,只需要新加一个登录类型和一个helper类,完全不影响其他类型的使用。
再具体的就看代码吧,这个东西还是至少要自己实现一边才能弄明白的。
 
三,吐槽
1,新浪微博必须得工程的bundleID和在其开发平台注册的bundleID一致才能登陆。。。新写个demo还得改下bundleID好麻烦。。。
2,微信创建的移动应用居然要资格认证过了才有登陆权限,认证一下300块还只管用一年,完全不让自己注册个玩啊。。。。
3,qq资格认证居然还要上传身份证照片,要身份证就算了吧还要正反面都要。。。
4,qq貌似得在info.plist文件中添加bundleDisplayName,我没写貌似也没事。。。这是文档太久了?
5,demo里没有可用的appKey和appSecret什么的真不能怪我呀,自己的不能用又不能泄露公司的。。。
6,体力活好累人呀。。。看文档也是个体力活。。。
 
 
 

使用cocoaPods一键集成第三方登录(新浪微博,qq,微信)的更多相关文章

  1. Python 第三方登录 实现QQ 微信 微博 登录

    本人写的AgentLogin,能快速返回QQ.微信.微博第三方用户名信息,主要用于快速登录 用 pip命令安装 pip install AgentLogin 用法 : 导入这个包 from Agent ...

  2. dedecms织梦第三方登录插件-QQ登录、微博登录、微信登录

    织梦程序集成第三方QQ登录.微博登录.微信登录,获取QQ.微博.微信,并存储至数据库,一键注册为网站会员,不用再次填写绑定信息,方便粘贴用户更强. 织梦第三方登录效果 第三方登录插件特点 1.所有文件 ...

  3. 从零玩转第三方登录之QQ登录

    从零玩转第三方登录之QQ登录 前言 在真正开始对接之前,我们先来聊一聊后台的方案设计.既然是对接第三方登录,那就免不了如何将用户信息保存.首先需要明确一点的是,用户在第三方登录成功之后, 我们能拿到的 ...

  4. 基于Vue、Springboot网站实现第三方登录之QQ登录,以及邮件发送

    基于Vue.Springboot实现第三方登录之QQ登录 前言 一.前提(准备) 二.QQ登录实现 1.前端 2.后端 1.application.yml 和工具类QQHttpClient 2.QQL ...

  5. IOS 集成第三方登录

    我使用的是友盟上集成的第三方登录功能,一共使用了三个应用的登录授权,QQ.微信.新浪微博.由于第三方登录授权成功后,需要跳转到一个新的界面,所以这里需要在项目里设置第三方登录的SSO授权.就是必须安装 ...

  6. iOS无处不在详解iOS集成第三方登录(SSO授权登录无需密码)

    链接地址:http://www.it165.net/pro/html/201408/18884.html 1.前言 不多说,第三登录无处不在!必备技能,今天以新浪微博为例. 这是上次写的iOS第三方社 ...

  7. iOS- 无处不在,详解iOS集成第三方登录(SSO授权登录<无需密码>)

    1.前言   不多说,第三登录无处不在!必备技能,今天以新浪微博为例. 这是上次写的iOS第三方社交分享:http://www.cnblogs.com/qingche/p/3727559.html 可 ...

  8. PHP 接入(第三方登录)QQ 登录 OAuth2.0 过程中遇到的坑

    前言 绝大多数网站都集成了第三方登录,降低了注册门槛,增强了用户体验.最近看了看 QQ 互联上 QQ 登录的接口文档.接入 QQ 登录的一般流程是这样的:先申请开发者 -> 然后创建应用(拿到一 ...

  9. 第三方登录(QQ登录)开发流程详解

    原文:http://www.cnblogs.com/it-cen/p/4338202.html 近排由于工作的繁忙,已经一个星期没写博文做分享了,接下来我对网站接入第三方登录----QQ登录的实现逻辑 ...

随机推荐

  1. svn冲突问题详解

    开发人员都知道代码管理工具是开发中一个必不可少的工具,这里也不废话详细介绍了.不管你个人喜欢git还是svn还是其他,但还有一大部分公司在使用svn做代码管理工具.这里详细介绍下SVN提交文件时冲突问 ...

  2. 在IBM Bluemix上部署Hyperledger应用

    简介 IBM Bluemix (http://www.ibm.com/bluemix‎)是一个基于cloud的应用开发和部署平台,提供包括多种服务和运行环境的支持.对Hyperledger应用开发者而 ...

  3. 从零开始学习jQuery (二) 万能的选择器

    本系列文章导航 从零开始学习jQuery (二) 万能的选择器 一.摘要 本章讲解jQuery最重要的选择器部分的知识. 有了jQuery的选择器我们几乎可以获取页面上任意的一个或一组对象, 可以明显 ...

  4. C# 代码编程规范

    1.       类一定要有注释 2.       C#代码要用#region包起来,#region之间要留一个且只留一个空行 3.       含义复杂不容易看懂的参数要写注释 4.       方 ...

  5. 使用Json.NET来序列化所需的数据

    我们在做开发的时候,很多时候需要和Json数据格式打交道,如Web开发里面,很多时候,数据通过Json进行传递到页面上,然后在进行处理的.而使用Json的时候,我们很多时候会涉及到几个序列化对象的使用 ...

  6. win8.1安装Team Function Server 2013

    1.系统是Win8.1企业版64位 2.Visual Studio 2013 3.数据库是Sql Server2012 (这里注意需要升级到SP1否则安装可能失败下载地址http://www.micr ...

  7. 说说web 2.0生态圈的那些事

    先来说一道面试题吧,“说一下,web 2.0 和web 1.0的区别?” 官方的解释是这样的: Web1.0 的主要特点在于用户通过浏览器获取信息,Web2.0 则更注重用户的交互作用,用户既是网站内 ...

  8. UVA 11582 Colossal Fibonacci Numbers! 大斐波那契数

    大致题意:输入两个非负整数a,b和正整数n.计算f(a^b)%n.其中f[0]=f[1]=1, f[i+2]=f[i+1]+f[i]. 即计算大斐波那契数再取模. 一开始看到大斐波那契数,就想到了矩阵 ...

  9. struts 用拦截器进行用户权限隔离,未登录用户跳到登录界面 *** 最爱那水货

    一般,我们的web应用都是只有在用户登录之后才允许操作的,也就是说我们不允许非登录认证的用户直接访问某些页面或功能菜单项.对于个别页面来说,可能不需要进行拦截,此时,如果项目采用struts view ...

  10. Android 手机卫士4--设置中心显示

    1,自定义属性 SettingActivity.java package com.itheima.mobilesafe74.activity; import com.itheima.mobilesaf ...