目前没有很多关于在SwiftUI中使用Facebook登录的资源。我不确定我的代码是否需要ViewController
,因为Facebook的LoginManager.login()
含有一个ViewController
参数-然而,这在SwiftUI中并没有很好的对应。
无论如何,当用户单击下面的Button
时,我正在尝试将用户登录到Facebook:
LoginView.swift
import Foundation
import SwiftUI
import FBSDKLoginKit
struct LoginView: View {
@EnvironmentObject var auth: UserAuth
var body: some View {
ZStack {
VStack {
Image("launcher_logo").resizable()
.scaledToFit()
.frame(height: 100)
.padding(.top, 100)
Spacer()
Button(action: {
FBLogin()
}) {
Text("Continue with Facebook")
}.foregroundColor(Color.black)
当点击按钮时,它会初始化下面的
FBLogin
,然后在其init()
中触发login()
函数。class FBLogin: LoginManager {
let loginButton = FBLoginButton()
let token = AccessToken.current
let permissions = ["user_birthday", "user_gender", "public_profile"]
override init(){
super.init()
logIn(permissions: permissions, from: nil)
print("fb init()")
}
override func logIn(permissions: [String], from fromViewController: UIViewController?, handler: LoginManagerLoginResultBlock? = nil) {
// TODO
}
}
不过我不确定接下来该怎么做。目前只有fb init()
输出,但我想执行登录并监听登录结果。
有什么想法吗?
UIViewController
相关内容。 - vincentUIViewControllerRepresentable
能让我创建自定义按钮/样式吗? - Zorgan