Commit 345e0921 authored by Steven杜宇's avatar Steven杜宇

// 苹果登录防止重复点击

parent d701d73a
...@@ -12,12 +12,15 @@ import AuthenticationServices ...@@ -12,12 +12,15 @@ import AuthenticationServices
class YHAppleLoginManager: NSObject { class YHAppleLoginManager: NSObject {
static let shared = YHAppleLoginManager() static let shared = YHAppleLoginManager()
let viewModel = YHAppleLoginViewModel() let viewModel = YHAppleLoginViewModel()
// 防止苹果登录按钮反复点击
var isAppleLoginBtnEnabled = true
var success: (([String: Any]) ->())? var success: (([String: Any]) ->())?
func appleLogin() { func appleLogin() {
if !isAppleLoginBtnEnabled {
return
}
let appleIDProvider = ASAuthorizationAppleIDProvider() let appleIDProvider = ASAuthorizationAppleIDProvider()
let request = appleIDProvider.createRequest() let request = appleIDProvider.createRequest()
request.requestedScopes = [.fullName, .email] request.requestedScopes = [.fullName, .email]
...@@ -25,6 +28,7 @@ class YHAppleLoginManager: NSObject { ...@@ -25,6 +28,7 @@ class YHAppleLoginManager: NSObject {
vc.delegate = self vc.delegate = self
vc.presentationContextProvider = self vc.presentationContextProvider = self
vc.performRequests() vc.performRequests()
isAppleLoginBtnEnabled = false
} }
} }
...@@ -32,6 +36,7 @@ extension YHAppleLoginManager: ASAuthorizationControllerDelegate, ASAuthorizatio ...@@ -32,6 +36,7 @@ extension YHAppleLoginManager: ASAuthorizationControllerDelegate, ASAuthorizatio
func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) { func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {
isAppleLoginBtnEnabled = true
var userId = "" var userId = ""
var email = "" var email = ""
var fullName = "" var fullName = ""
...@@ -74,7 +79,7 @@ extension YHAppleLoginManager: ASAuthorizationControllerDelegate, ASAuthorizatio ...@@ -74,7 +79,7 @@ extension YHAppleLoginManager: ASAuthorizationControllerDelegate, ASAuthorizatio
func authorizationController(controller: ASAuthorizationController, didCompleteWithError error: Error) { func authorizationController(controller: ASAuthorizationController, didCompleteWithError error: Error) {
printLog("Apple login FAILED: \(error.localizedDescription)") printLog("Apple login FAILED: \(error.localizedDescription)")
isAppleLoginBtnEnabled = true
if error is ASAuthorizationError { if error is ASAuthorizationError {
let err = error as! ASAuthorizationError let err = error as! ASAuthorizationError
// 在这里处理 AuthenticationError // 在这里处理 AuthenticationError
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment