第一步: 不管微信登录,微信支付,微信分享都需要到微信开放平台注册账号后并注册应用,拿到应用唯一标识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