Застрял вход в Facebook - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь внедрить логин Facebook в свое приложение и внимательно слежу за документацией.

  1. Я установил Info.plist файл
  2. Я также настроил AppDelegate

В методе viewDidLoad у меня есть следующий код:

let loginButton = LoginButton(readPermissions: [ .publicProfile ])
loginButton.center = view.center
loginButton.delegate = self
view.addSubview(loginButton)

viewController соответствует делегату:

extension FacebookLoginViewController: LoginButtonDelegate {
        func loginButtonDidCompleteLogin(_ loginButton: LoginButton, result: LoginResult) {
            switch result {
            case .cancelled:
                print("User cancelled login")
            case .failed(let error):
                print("Failed: \(error)")
            case .success:
                print("Successful login")
            }
        }

        func loginButtonDidLogOut(_ loginButton: LoginButton) { print("Logged out") }
}

Когда я нажимаю кнопку входа в систему, открывается окно браузера внутри приложения, в котором спрашивается, хочу ли я войти в систему с помощью приложения Facebook или браузера. снимок экрана вида выбора

Если я выберу браузер , тогда мне нужно будет ввести свое имя пользователя и пароль, и будет работать .

Если я выберу приложение , пройду процесс аутентификации и вернусь к моему приложению , как будто ничего не произошло . Приглашение выбрать приложение Facebook или браузер все еще там. И запрос не потерпел неудачу или не удалось или что-нибудь. Он даже не вызывает метод делегата.

Что еще нужно сделать, чтобы аутентификация работала через приложение?

1 Ответ

0 голосов
/ 19 июля 2018

Решение простое. Прямо из команды Facebook iOS: Все, что вам нужно сделать, это добавить эту функцию в ваш файл AppDelegate.

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
    return FBSDKApplicationDelegate.sharedInstance().application(app, open: url, options: options)
}
...