Ситуация
Здравствуйте, я использую FBSDK для входа в приложение. Когда приложение Facebook удалено , я буду перенаправлен в браузер после нажатия кнопки «Продолжить с Facebook». Все работает хорошо, это вызовет func loginButton(_ loginButton: FBLoginButton, didCompleteWith result: LoginManagerLoginResult?, error: Error?)
Проблема
Моя проблема в том, что когда приложение Facebook установлено , и я продолжаю с приложение не вызывает func loginButton(_ loginButton: FBLoginButton, didCompleteWith result: LoginManagerLoginResult?, error: Error?)
, поэтому я не могу продолжить аутентификацию
код
struct login : UIViewRepresentable {
@EnvironmentObject var manager : HttpAuth
func makeCoordinator() -> login.Coordinator {
return login.Coordinator(manager)
}
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 {
var manager: HttpAuth
init(_ HttpAuth: HttpAuth) {
self.manager = HttpAuth
}
func loginButton(_ loginButton: FBLoginButton, didCompleteWith result: LoginManagerLoginResult?, error: Error?) {
print("////////////////////////////////////////////////////////////////////////loginButton")
if error != nil{
print("////////////////////////////////////////////////////////////////////////Failed Login")
} else if result!.isCancelled{
print("////////////////////////////////////////////////////////////////////////User cancelled")
} else{
print("////////////////////////////////////////////////////////////////////////Successful login")
let r = GraphRequest(graphPath: "me", parameters: ["fields":"email,name"], tokenString: AccessToken.current?.tokenString, version: nil, httpMethod: HTTPMethod(rawValue: "GET"))
r.start(completionHandler: { (data, response, error) in
if error == nil {
guard let response = response else { return }
let messageDictionary : Any = response
let jsonData = try! JSONSerialization.data(withJSONObject: messageDictionary, options: [])
let jsonString = String(data: jsonData, encoding: String.Encoding.ascii)!
let hi = Data(jsonString.utf8)
let user = try! JSONDecoder().decode(FBgraph.self, from: hi)
print("FacebookLoginRep: updateUIView \(user.email)")
self.manager.checkDetails(username: user.email, password: nil, facebook_key: user.id)
}
else{
print("FacebookLoginRep: updateUIView error")
}
})
}
}
func loginButtonDidLogOut(_ loginButton: FBLoginButton) {
}
}
}