整个集成流程主要分为三步:项目配置、代码集成、服务端对接。
集成前准备
在写代码前,需要先完成一些准备工作。
* **Apple开发者账号**:用于配置“使用Apple登录”功能。
* **微信开放平台账号**:需要是企业认证的账号(个人账号不支持)
* **Xcode项目**:准备好你的项目文件。

image.png
pod 'WechatOpenSDK'
安装完成后,需要实现 WXApiDelegate 协议并处理回调。
// 在 AppDelegate 中导入 SDK
#import <WechatOpenSDK-WXApi.h>
// 在 AppDelegate 中实现协议
@interface AppDelegate : UIResponder <UIApplicationDelegate, WXApiDelegate>
@end
// 初始化 SDK
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 注册你的微信 AppID,并设置 Universal Link
[WXApi registerApp:@"你的微信AppID" universalLink:@"https://yourdomain.com/"];
return YES;
}
// 处理 Universal Link 回调
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}
// 处理 URL Scheme 回调
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
return [WXApi handleOpenURL:url delegate:self];
}
// WXApiDelegate 回调方法
- (void)onResp:(BaseResp *)resp {
if ([resp isKindOfClass:[SendAuthResp class]]) {
SendAuthResp *authResp = (SendAuthResp *)resp;
if (authResp.errCode == 0) {
// 获取到授权 code,将其发送给服务端
NSString *code = authResp.code;
NSLog(@"微信授权成功,code: %@", code);
// TODO: 将 code 发送给服务端
} else {
NSLog(@"微信授权失败: %d", authResp.errCode);
}
}
}
- 触发登录
在需要登录的地方,调用微信登录接口:
- (void)wechatLogin {
SendAuthReq *req = [[SendAuthReq alloc] init];
req.scope = @"snsapi_userinfo";
req.state = @"your_state";
[WXApi sendReq:req completion:nil];
}