微信登录

1.1 获取Team ID


Team ID

3.2 配置apple-app-site-association文件
3.2.1 创建名为apple-app-site-association的无后缀文件。
3.2.2 编辑文件内容,把文件给后台小哥放到服务器,让他给个https的地址。

{
       "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "Team ID.Bundle ID",
                "paths": ["*"]
            }
        ]
    }
}

注意:paths后面 ["*"]中的*表示全路径,也可["/app/*"]表示app下的全路径,所有url都可以进入到app中打开,只要和Associated Domains、universal link对应起来就行

例(1):文件地址为:https://a.b.c/apple-app-site-association,"paths": ["*"],Associated Domains应该为applinks:a.b.c/,universal link应为https://a.b.c/

例(2):文件地址为:同上,"paths": ["/app/*"],Associated Domains应该为applinks:a.b.c/,universal link应为https://a.b.c/app/
3.3 Signing&Capabilities点左上角“+”,选择Associated Domains,设置applinks

applinks

2.设置LSApplicationQueriesSchemes

TARGETS -> info -> Custom iOS Taeget Properties添加LSApplicationQueriesSchemes为数组类型,增加weixin和weixinULAPI。


LSApplicationQueriesSchemes

3.设置URL scheme

URL scheme为微信开发者平台获取的,就是APPID


URL scheme

4.代码设置

appdelegate中didFinishLaunchingWithOptions方法:
WXApi.registerApp(APPID, universalLink: "https://apiproduct.yachaungkeji.cn/tempimgs/wxnew/app/test/")

App中微信登录按钮请求的方法:
let urlString = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=(APPID)&secret=(SECRET)&code=(sendResp.code!)&grant_type=authorization_code"

Info中URL Types设置URL Schemes
Signing&Capabilites->AssiociatedDomains->Domains

5.AppDelegate设置

5.1 AppDelegate设置代理
5.2 AppDelegate代理方法

-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options{
        
    if ([url.host isEqualToString:@"safepay"]) {
        
        //Callback为nil时,支付代码里的回调才会执行
        //跳转支付宝钱包进行支付,处理支付结果
        [[AlipaySDK defaultService]processOrderWithPaymentResult:url standbyCallback:nil];
        //授权跳转支付宝钱包进行支付,处理支付结果
        [[AlipaySDK defaultService] processAuth_V2Result:url standbyCallback:nil];
    }
    else{
        return [WXApi handleOpenURL:url delegate:self];
    }
    return YES;
}
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
    return [WXApi handleOpenURL:url delegate:self];
}
-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray> * _Nullable))restorationHandler{
    
    return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}
- (void)onReq:(BaseReq*)req{

    NSLog(@"---");
}

- (void)onResp:(BaseResp*)resp{

    if ([resp isKindOfClass:[SendAuthResp class]]) {
        //登录授权成功
    }
    else{ //if ([resp isKindOfClass:[PayResp class]]) {
        //登录授权成功
    }
    SendAuthResp *resp2 = (SendAuthResp *)resp;

    NSLog(@"resp2.code------%@",resp2.code);

}

5.3 SceneDelegate设置代理
5.4 SceneDelegate代理方法

-(void)scene:(UIScene *)scene openURLContexts:(NSSet *)URLContexts API_AVAILABLE(ios(13.0)){
        
    if (URLContexts.count > 0) {
        
        NSEnumerator *enumerator = [URLContexts objectEnumerator];
        UIOpenURLContext *urlContext = [enumerator nextObject];
        NSURL *url = urlContext.URL;
        if ([url.host isEqualToString: @"safepay"]) {
            //Callback为nil时,支付代码里的回调才会执行
            //跳转支付宝钱包进行支付,处理支付结果
            [[AlipaySDK defaultService]processOrderWithPaymentResult:url standbyCallback:nil];
            //授权跳转支付宝钱包进行支付,处理支付结果
            [[AlipaySDK defaultService] processAuth_V2Result:url standbyCallback:nil];
        }
        else{
            [WXApi handleOpenURL:url delegate:self];
        }
    }
}
-(void)scene:(UIScene *)scene continueUserActivity:(NSUserActivity *)userActivity API_AVAILABLE(ios(13.0)){
    [WXApi handleOpenUniversalLink:userActivity delegate:self];
}
- (void)onReq:(BaseReq*)req{

    NSLog(@"---");
}

- (void)onResp:(BaseResp*)resp{

    if ([resp isKindOfClass:[SendAuthResp class]]) {
        //登录授权成功
    }
    else{ //if ([resp isKindOfClass:[PayResp class]]) {
        //登录授权成功
    }
    SendAuthResp *resp2 = (SendAuthResp *)resp;

    NSLog(@"resp2.code------%@",resp2.code);

}

参考资料:
https://www.jianshu.com/p/1936e649b012
https://blog.csdn.net/qcx321/article/details/103784060
https://blog.csdn.net/weixin_43064185/article/details/109388196

你可能感兴趣的:(微信登录)