IOS 匆忙第一篇 — 第三方登陆




网上有很多关于IOS第三方登陆的的文章,在自己学习这一块的时候也看了,想想还是应该记录一下自己的这个过程,还有遇到的一些问题,我只是简单实现检测是否安装微信然后登陆。


微信登陆

登陆按我的理解就是我发消息给你请求授权登陆,按你的要求发消息,然后你返回授权消息给我。让我知道授权成功没成功就回调.

首先在xcode -- info.plist文件配置URL types里面的三个属性

写在登录处:

在登录处创建SendAuthReq对象

向微信发出授权申请会调用WXApi里面的SendReq成员函数


写在APPDelegate里面的东西:(主要是注册实现授权后回调函数)

WXApiDelegate 接收处理来自微信终端的事件消息

(期间,微信会切换到第三方程序,然后再WXApiDelegate中的handleOpenURL:delegate中实现接收处理(URL返回的信息)

1,函数调用切换到微信界面

2,第三方程序等待微信返回onResp完成异步调用函数

3,异步调用完后一定会调用sendResp发送处理结果给微信

4,发送一个sendReq后收到一个来自微信的处理结果,调用一次sendReq后收到onResp

-(void) onReq:(BaseReq*)req

-(void) onResp:(BaseResp*)resp


第一步,获取code,这个用来获取token,第二步,就是带上code获取token,第三步,根据第二步获取的token和openid来获取用户的相关信息;

总结:似乎初步可以理解为一注册二授权三回调

出错一:东西都写好了可是编译的时候报错。。。

错误很多网上找了,如果错误很多都是_inflate... 或是SCNetWork../WXOMTAHealper或CTTelephone等等开头的错误,是因为缺少一些系统框架,libc++,systemconfiuration.framework,coretelephoney.framework,libz.1.2.5(解决WXOMTAHealper),libsqqlite3,CoreTelephony(解决CCTelephone)添加进去之后再看看报错情况

出错二:-canOpenURL: failed for URL: "weixin://app/wx9c8771d3c07dfd30/" - error: "This app is not allowed to query for scheme weixin"

出了这个错就应该好好看下info.plist文件里面除了要在URL Types 还需要在LSApplicationQueriesSchemes数组里面添加一个weixin item(这样才能加载本地安装的微信)

ok做到这一步就差不多了,以后还会补充,目前毕竟是简单的使用,涉及他的功能还是很多的。

下面是几个重要代码:


//向微信注册  
   [WXApi registerApp:kWXAPP_ID withDescription:@ "weixin" ];  
   
//授权后回调 WXApiDelegate  
-(void)onResp:(BaseReq *)resp  
{  
    /* 
     ErrCode ERR_OK = 0(用户同意) 
     ERR_AUTH_DENIED = -4(用户拒绝授权) 
     ERR_USER_CANCEL = -2(用户取消) 
     code    用户换取access_token的code,仅在ErrCode为0时有效 
     state   第三方程序发送时用来标识其请求的唯一性的标志,由第三方程序调用sendReq时传入,由微信终端回传,state字符串长度不能超过1K 
     lang    微信客户端当前语言 
     country 微信用户当前国家信息 
     */      
     SendAuthResp *aresp = (SendAuthResp *)resp;  
     if  (aresp.errCode== 0) {  
         NSString *code = aresp.code;  
         NSDictionary *dic = @{@ "code" :code};  
     }  
}  
 
//和QQ,新浪并列回调句柄
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation  
{  
     return  [TencentOAuth HandleOpenURL:url] ||  
     [WeiboSDK handleOpenURL:url delegate:self] ||  
     [WXApi handleOpenURL:url delegate:self];;  
}  
   
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url  
{  
     return  [TencentOAuth HandleOpenURL:url] ||  
     [WeiboSDK handleOpenURL:url delegate:self] ||  
     [WXApi handleOpenURL:url delegate:self];;  
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值