iOS 微信第三方登录
2015-08-30 19:43
579 查看
折腾了好几天,总算把 iOS 的微信第三方登录做出来了!虽然不难,但对初学者来说还是遇到了一些没接触过的知识。操作步骤官方文档(微信开放平台)写得还可以,这里不再赘述,只说一些知识点和需要注意的地方。
Demo 下载
没图没真相!先上效果图:
首页显示:
![](http://img.blog.csdn.net/20150830181958177)
获取权限页面:
![](http://img.blog.csdn.net/20150830181944387)
登录后的效果:
![](http://img.blog.csdn.net/20150830181904626)
这里主要是 AppDelegate 和 ViewController 之间传递数据。
AppDelegate.m 中代码:
ViewController.m 中代码:
通知其实很简单,只需一方发送,另一方接收之后执行所需操作即可。
AppDelegate.m 发送通知代码:
ViewController.m 接收通知代码:
注意:发送和接收通知的名字要一致!
关于 NSNotification, 这里有个小 Demo 非常不错!简洁明了!下载地址 http://download.csdn.net/detail/jk199054/4077865
![](http://img.blog.csdn.net/20150830175923365)
注:本人用的 Xcode 版本为 6.4。
运行项目可能会出现以下错误和警告:
![](http://img.blog.csdn.net/20150830192129214)
此时,删除 WeChatSDK, 再重新拖进去一次即可。注意拖入的时候要勾选 “Copy items if needed” 选项,如图:
![](http://img.blog.csdn.net/20150830192550983)
主要参考资料:
1. iOS接入指南
2. 移动应用微信登录开发指南
3. 基于第三方微信授权登录的iOS代码分析
Demo 下载
没图没真相!先上效果图:
首页显示:
获取权限页面:
登录后的效果:
一些知识点
1. 类与类之间传递数据
刚开始的困难是不知道如何在类与类之间传递数据,后来在百度知道找到了方法,网址 http://zhidao.baidu.com/link?url=rgc9KJOqPqhS1N0x02eXxeQtN_Sy_ZZIY0QlI4Sl0cChwel080d43TFn3npIB7arYxcbsCsVTRyER2TmFrmioa这里主要是 AppDelegate 和 ViewController 之间传递数据。
AppDelegate.m 中代码:
[code]AppDelegate *appdelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; appdelegate.headimgurl = [dic objectForKey:@"headimgurl"]; // 传递头像地址 appdelegate.nickname = [dic objectForKey:@"nickname"]; // 传递昵称
ViewController.m 中代码:
[code]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 发送通知代码:
[code][[NSNotificationCenter defaultCenter] postNotificationName:@"Note" object:nil]; // 发送通知
ViewController.m 接收通知代码:
[code]// 添加观察者 [[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, 否则不能获取权限(自己不止一次忘记添加……)3. Copy items if needed
刚开始不太理解,后来才知道是把文件复制到工程里面。这个很重要!注:本人用的 Xcode 版本为 6.4。
运行项目可能会出现以下错误和警告:
此时,删除 WeChatSDK, 再重新拖进去一次即可。注意拖入的时候要勾选 “Copy items if needed” 选项,如图:
主要参考资料:
1. iOS接入指南
2. 移动应用微信登录开发指南
3. 基于第三方微信授权登录的iOS代码分析
相关文章推荐
- 基于Nodejs的微信消息加密与解密实现概要
- 用循环语句while或for循环编写一个验证登陆的小程序
- 用switch写一个区分输入成绩等级的小程序
- 微信开发学习路线
- 微信流行语
- 数据库插入微信表情错误
- 微信公众账号登陆授权开发——5(解决使用官方获获取第三方平台方获取预授权码)
- gradle打包微信包错误
- 微信开放平台之公众号第三方平台探讨总结
- zabbix如何实现微信报警
- 最新微信对接及天气预报功能源代码
- Android调用微信登陆、分享、支付
- Android调用微信登陆、分享、支付
- zabbix实现微信报警
- viewpager setpagechangelistener解释与应用到如微信的页面转换的渐变效果
- 微信公众平台——AIRKISS技术
- 微信公众号网页授权获取用户基本信息
- 吸粉、品宣、转化在微信营销中的注意事项
- 初学java,写的购物平台控制台小程序。ps:只要努力就会有收获。
- 企业号OAuth2.0验证企业用户接口