一.在微信开发平台->管理中心创建APP大概七天后通过,获取AppID和AppSecret
二.接入微信登录
1.通过pod添加WechatOpenSDK
pod 'WechatOpenSDK'
(若您已经会了podfile文件操作这段可略过)Podfile文件操作:按住command+空格键打开搜索输入terminal回车,输入cd+项目文件目录(可直接用鼠标把文件拖入输入框,路径直接会出现),输入pod init,然后输入ls查看文件夹下是否有Podfile文件,如果有继续操作输入 vim Podfile(podfile文件编辑的时候先要把光标放在文件窗口内再按一下i键,编辑完成退出的时候点一下esc键,然后按shift+键盘上的冒号键,输入wq,w是保存,q是退出,如果编辑错误导致无法退出,单独输入一个q再加一个叹号!),若ls命令后没有看到Podfile文件,说明pod init命令没有执行成功,请重新操作,或者您的Cocoapods有问题,请先检测一下.
操作成功后podfile文件内会有如上图一样有pod 'WechatOpenSDK'这段内容,然后请输入pod install,等待安装成功即可.
2.在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id(如下图所示)。
3.在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“LSApplicationQueriesSchemes“添加weixin(如下图所示)。
4.允许网络访问,配置如下图(前期就该配置好的,但是我的忘记了,大家不要和我一样粗心)
5.在你需要使 用微信终端API的文件中import WXApi.h 头文件,并增加 WXApiDelegate 协议。
#import <UIKit/UIKit.h>
#import "WXApi.h"
@interface AppDelegate : UIResponder <UIApplicationDelegate,WXApiDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
6.1至6.3的方法都是在appdelegate.m文件内的方法
6.1.要使你的程序启动后微信终端能响应你的程序,必须在代码中向微信终端注册你的id。(如下图所示,在 AppDelegate 的 didFinishLaunchingWithOptions 函数中向微信注册id)。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//向微信注册
[WXApi registerApp:@"你的appid"];
return YES;
}
6.2. 重写AppDelegate的handleOpenURL和openURL方法:(下面两个方法可以直接拷过去用)
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [WXApi handleOpenURL:url delegate:self];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [WXApi handleOpenURL:url delegate:self];
}
6.3获取登录成功失败信息的方法
-(void) onResp:(BaseResp*)resp{
switch(resp.errCode) {
case0://用户同意
{
if([resp isKindOfClass:[SendAuthResp class]]) {//判断是否是微信登录
SendAuthResp*aresp = (SendAuthResp*)resp;
[[NSNotificationCenter defaultCenter]postNotificationName:@"WXLoginNotificaton" object:@{@"code":aresp.code}];//微信登录通知
NSLog(@"errCode---->>>%@",aresp.code);
}else{
[[NSNotificationCenter defaultCenter]postNotificationName:@"wxshareNotification" object:nil];//微信分享通知
}
}
break;
case-1://普通错误类型
// WXSuccess = 0, /**< 成功 */
// WXErrCodeCommon = -1, /**< 普通错误类型 */
// WXErrCodeUserCancel = -2, /**< 用户点击取消并返回 */
// WXErrCodeSentFail = -3, /**< 发送失败 */
// WXErrCodeAuthDeny = -4, /**< 授权失败 */
// WXErrCodeUnsupport = -5, /**< 微信不支持 */
//do ...
break;
case-2://用户取消
{ //do ...
// NSLog(@"---quxiao-----");
if([resp isKindOfClass:[SendAuthResp class]]) {//判断是否是微信登录
[SVProgressHUD showErrorWithStatus:@"微信登录授权取消"];
[SVProgressHUD dismissWithDelay:1.5];
}else{
[SVProgressHUD showErrorWithStatus:@"微信分享取消"];
[SVProgressHUD dismissWithDelay:1.5];
[[NSNotificationCenter defaultCenter]postNotificationName:@"wxshareFailureNotification" object:nil];//微信分享失败通知
}
}
break;
default:
break;
}
}
7.登录点击事件发起(下面内容全部是在登录控制器内操作的)
A.发起之前先在viewDidLoad内注册一下通知
- (void)viewDidLoad {
[super viewDidLoad];
//注册通知
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(uploadCodeToServer:) name:@"WXLoginNotificaton" object:nil];
}
B.点击登录按钮后发起登录授权
-(void)loginButtonclick
{
if ([WXApi isWXAppInstalled]) {
SendAuthReq*req = [[SendAuthReqalloc]init];
req.scope = @"snsapi_userinfo";
req.state=@"App";
[WXApisendReq:req];
}
else{
[self setupAlertController];
}
}
- (void)setupAlertController {
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"温馨提示" message:@"请先安装微信客户端" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *actionConfirm = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil];
[alertaddAction:actionConfirm];
[self presentViewController:alert animated:YES completion:nil];
}
C.注册通知时我们调用了一个方法uploadCodeToServer:他的参数是NSNotification
如下:
-(void)uploadCodeToServer:(NSNotification*)notification{
内部调用我们自己上传给自己服务器的东西,具体内容和服务器端人员商量
}
以上便是这次APP接入微信登录的全部步骤,只是自己操作的步骤,若有不足,还请大家予以斧正,谢谢