iOS 微信第三方登录

折腾了好几天,总算把 iOS 的微信第三方登录做出来了!虽然不难,但对初学者来说还是遇到了一些没接触过的知识。操作步骤官方文档(微信开放平台)写得还可以,这里不再赘述,只说一些知识点和需要注意的地方。

Demo 下载

没图没真相!先上效果图:

首页显示:
3

获取权限页面:
2

登录后的效果:
1

一些知识点

1. 类与类之间传递数据

刚开始的困难是不知道如何在类与类之间传递数据,后来在百度知道找到了方法,网址 http://zhidao.baidu.com/link?url=rgc9KJOqPqhS1N0x02eXxeQtN_Sy_ZZIY0QlI4Sl0cChwel080d43TFn3npIB7arYxcbsCsVTRyER2TmFrmioa
这里主要是 AppDelegate 和 ViewController 之间传递数据。

AppDelegate.m 中代码:

AppDelegate *appdelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
appdelegate.headimgurl = [dic objectForKey:@"headimgurl"]; // 传递头像地址
appdelegate.nickname = [dic objectForKey:@"nickname"]; // 传递昵称

ViewController.m 中代码:

AppDelegate *appdelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSString *str = appdelegate.nickname; // 接收昵称
NSLog(@"display.nickname = %@", str);
[_nickname setText:str];

NSString *url = appdelegate.headimgurl;
NSLog(@"display.url = %@", url); // 接收头像网址
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:url]]];
self.imageView.image = image;

2. 通知 NSNotification

数据能传递了,但什么时候调用并显示是个问题。在 ViewController 和 AppDelegate 的生命周期中都进行了测试,结果都不行。后来看到有人说用通知 NSNotification, 测试后果然可以!

通知其实很简单,只需一方发送,另一方接收之后执行所需操作即可。

AppDelegate.m 发送通知代码:

[[NSNotificationCenter defaultCenter] postNotificationName:@"Note" object:nil]; // 发送通知

ViewController.m 接收通知代码:

// 添加观察者
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(display) name:@"Note" object:nil];

注意:发送和接收通知的名字要一致!

关于 NSNotification, 这里有个小 Demo 非常不错!简洁明了!下载地址 http://download.csdn.net/detail/jk199054/4077865

注意事项

1. 微信客户端

真机调试,需要安装微信客户端。

2. 添加 URL Types

一定不要忘了在项目的 info 中添加 URL Types, 否则不能获取权限(自己不止一次忘记添加……)

URL

3. Copy items if needed

刚开始不太理解,后来才知道是把文件复制到工程里面。这个很重要!

注:本人用的 Xcode 版本为 6.4。

运行项目可能会出现以下错误和警告:

这里写图片描述

此时,删除 WeChatSDK, 再重新拖进去一次即可。注意拖入的时候要勾选 “Copy items if needed” 选项,如图:
这里写图片描述

主要参考资料:
1. iOS接入指南
2. 移动应用微信登录开发指南
3. 基于第三方微信授权登录的iOS代码分析

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值