近两年半没有工作,重新回到技术岗位,脸大的我竟然一丁点不恐惧,不知道其他宝妈会有同样的感受吗?在新公司的第二周被安排给之前的一个项目改bug,第二个任务是一个社交的App,其中有通过第三方快速登录的功能,不瞒大家说,第一次接触(14年毕业就做iOS开发,成长神一般的慢)。
正题:最最好的方式是官方文档
除此之外百度 不好意思地说 我“百家抄袭”了一下。除了微信登录 还附加了分享哈哈~(有图片更高效,本人能力有限,不大喜欢读长长的只有文字的技术文章嘻哈)
1、集成SDK
1.1、(手动集成)下载并解压SDK:下载链接,并拖拽 libWeChatSDK.a,WXApi.h,WXApiObject.h 三个文件到Xcode⼯工程内。
1.2、(通过CocoaPods集成)
pod 'WechatOpenSDK'
2、添加依赖库(CocoaPods集成的不用添加)
SystemConfiguration.framework
libz.tbd
libsqlite3.0.tbd
libc++.tbd
CoreTelephony.framework
3、新增⼀一条URL Scheme:选中⼯工程Target -> Info -> URLTypes;
identifier随便写,URL scheme写成微信开放平台申请的appid
4、添加⽩白名单:LSApplicationQueriesSchemes新增⽩名单****
5、AppDelegate中向微信注册Appid,并添加处理回调的代码
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options{
return [WXApi handleOpenURL:url delegate:self];
}
A:
1、微信登录
微信回调后如果还需要获取个人信息 在官方文档中有相关的URL,下面的是我公司实际用到的 仅供参考
在appdelegate中加通知//微信登录回调
-(void)onResp:(BaseResp *)resp{
[[NSNotificationCenter defaultCenter] postNotificationName:@"wxcbk" object:resp];
}
在对应类中添加接收者
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(wxcbk:) name:@"wxcbk" object:nil];
之后是通知方法
-(void)wxcbk:(NSNotification *)noti{
SendAuthResp *resp = noti.object;
NSString *url = [NSString stringWithFormat:@"https://api.weixin.qq.com/sns/oauth2/access_token?appid=%@&secret=%@&code=%@&grant_type=authorization_code",KWXAPPID,KWXSECRET,resp.code];
[[Httprequest share] postObjectByParameters:nil andUrl:url show