为iOS项目同时接入微信登录和Apple登录

整个集成流程主要分为三步:项目配置、代码集成、服务端对接。

集成前准备
在写代码前,需要先完成一些准备工作。

*   **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);
        }
    }
}
  1. 触发登录

在需要登录的地方,调用微信登录接口:

- (void)wechatLogin {
    SendAuthReq *req = [[SendAuthReq alloc] init];
    req.scope = @"snsapi_userinfo";
    req.state = @"your_state";
    [WXApi sendReq:req completion:nil];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容