我正在尝试为Facebook自定义我的登录按钮,但是我不知道该怎么做。我想在自定义按钮操作上调用登录功能,以便能够登录。
Button(action: {
print("Pressed!")
}){
Text("Facebook")
.frame(width: 100, height: 100)
.foregroundColor(Color.white)
.background(Color.blue)
.clipShape(Circle())
}
这是我要使用Facebook登录的自定义按钮。
struct login : UIViewRepresentable {
func makeCoordinator() -> login.Coordinator {
return login.Coordinator()
}
func makeUIView(context: UIViewRepresentableContext<login>) -> FBLoginButton {
let button = FBLoginButton()
button.permissions = ["email"]
button.delegate = context.coordinator
return button
}
func updateUIView(_ uiView: FBLoginButton, context: UIViewRepresentableContext<login>) {
}
class Coordinator : NSObject, LoginButtonDelegate {
func loginButton(_ loginButton: FBLoginButton, didCompleteWith result: LoginManagerLoginResult?, error: Error?) {
if error != nil {
print((error?.localizedDescription)!)
return
}
if AccessToken.current != nil {
let credential = FacebookAuthProvider.credential(withAccessToken: AccessToken.current!.tokenString)
Auth.auth().signIn(with: credential) { (response, error) in
if error != nil {
print(error?.localizedDescription)
return
}
print("Success")
print(response?.user.displayName)
print(response?.user.photoURL)
}
}
}
func loginButtonDidLogOut(_ loginButton: FBLoginButton) {
try! Auth.auth().signOut()
}
}
}
我认为我必须更新makeUIView才能返回我的自定义按钮,但是我不知道如何使其正常工作。谢谢。