gpt4 book ai didi

ios - 如何通过 SwiftUI 正确使用 google 登录

转载 作者:行者123 更新时间:2023-11-29 05:10:25 27 4
gpt4 key购买 nike

当我尝试登录并在下一个 View 中使用 GIDSignIn 注销并导航到上一个 View 时,一切都很好,但是当我尝试再次登录时,警报会询问应用程序想要使用谷歌登录,当我按继续时 - 我收到错误消息:

键盘无法呈现 View Controller (尝试呈现)

和下一个错误

第一响应者错误:非关键窗口尝试重新加载 - 由于手动键盘而允许(第一响应者窗口为 >,关键窗口为 ; 层 = >)

我的代码

import SwiftUI
import Foundation
import GoogleSignIn

struct LoginView: View {

@ObservedObject var loginViewModel = LoginViewModel()

var body: some View {

NavigationView {
VStack {

Button(action: SocialLogin().attemptLoginGoogle, label: {
HStack{
Image("google")
Text("Google login")
.font(.title)
}
})
.padding(EdgeInsets(top: 8, leading: 16, bottom: 8, trailing: 16))
.background(Color.white)
.cornerRadius(8.0)
.shadow(radius: 4.0)

NavigationLink(destination: UserData(), isActive: self.$loginViewModel.isLogedIn) {
EmptyView()
}
}
.navigationBarTitle(Text("Login"))
}

}
}

struct LoginView_Previews: PreviewProvider {
static var previews: some View {
LoginView()
}
}

struct SocialLogin: UIViewRepresentable {

func makeUIView(context: UIViewRepresentableContext<SocialLogin>) -> UIView {
return UIView()
}

func updateUIView(_ uiView: UIView, context: UIViewRepresentableContext<SocialLogin>) {
}

func attemptLoginGoogle() {

GIDSignIn.sharedInstance()?.presentingViewController = UIApplication.shared.windows.last?.rootViewController
GIDSignIn.sharedInstance()?.signIn()

}
}

最佳答案

我在 SwiftUI 中遇到这个问题。

我使用这个代码。

      if(GIDSignIn.sharedInstance()?.presentingViewController==nil){
GIDSignIn.sharedInstance()?.presentingViewController = UIApplication.shared.windows.last?.rootViewController
}
GIDSignIn.sharedInstance()?.signIn()

关于ios - 如何通过 SwiftUI 正确使用 google 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59737264/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com