iOS -- 第三方登录之微信登录 (Swift代码)

第一步: 不管微信登录,微信支付,微信分享都需要到微信开放平台注册账号后并注册应用,拿到应用唯一标识AppID和应用密钥 AppSecret
然后集成SDK,具体如何集成查看官方文档,文档有详细介绍
微信开放平台–SDK 接入指南
第二步:

在桥接文件中导入头文件
#import "WXApi.h"AppDelegate 的 didFinishLaunchingWithOptions方法中注册(代码如下)
 
  WXApi.registerApp(WXAppId, universalLink: UniversalLink)

第三步:在登录界面的微信登录按钮方法中添加如下代码

如果前面集成sdk 步骤都顺利的话,这段代码就能调起微信登录的授权页

 if WXApi.isWXAppInstalled() {
     let rep = SendAuthReq()
     //这两个参数 可以照抄 第一个是固定的,第二个随意写
     rep.scope = "snsapi_userinfo"
     rep.state = "wx_oauth_authorization_state"
     WXApi.send(rep, completion: nil)
   }
  else {
       //弹框提示 未安装微信应用或版本过低
       kWindow.makeToast("未安装微信应用或版本过低")
  }

第四步:当用户点击了同意之后,返回到app内会调用一个微信的回调方法,这个回调方法写在AppDelegate中

//微信代理方法
extension AppDelegate: WXApiDelegate {
    //MARK:微信回调
    func onResp(_ resp: BaseResp) {
        if resp.isKind(of: PayResp.self) {
         //这里是微信支付的回调
        }  else if resp.isKind(of: SendAuthResp.self)        {  
         //这里是授权登录的回调
            let aresp = resp as! SendAuthResp
            DispatchQueue.main.async {
                if aresp.errCode == 0 {
                    if let code = aresp.code {
                        //这里拿到code之后 对接服务器接口 
                        //这步 相当于账号密码登录的流程 返回用户信息
                        //后端这个接口返回的数据需要判断是第一次授权还是 不是第一次授权,第一次授权需要去绑定手机号界面,不是第一次授权就直接跳转到首页,登录成功
                        //如果是第一次授权,服务器再给个绑定手机号的接口
                        //大概就这个流程
                    }
                    else {
                        kWindow.makeToast("微信授权失败")
                    }
                }
                else {
                    kWindow.makeToast("微信授权失败")
                }
            }
        }
    }
 }

End

你可能感兴趣的:(swift,ios,objective-c)