Я пытаюсь использовать веб-представление ASWebAuthenticationSession. После завершения аутентификации обработчик завершения сеанса не вызывается. Следовательно, веб-представление не отклоняется.
guard let authURL = URL(string: "https://github.com/login/oauth/authorize?client_id=<client_id>/")
else { return }
let scheme = "octonotes"
session = ASWebAuthenticationSession.init(url: authURL, callbackURLScheme: scheme, completionHandler: { callbackURL, error in
// Handle the callback.
print(callbackURL!)
print(error!)
})
session?.presentationContextProvider = self
session?.start()
Я установил схему URL обратного вызова в info.plist. То же самое обновляется в Targets -> info -> Типы URL. Это выглядит так: Типы URL
После запуска приведенного выше кода открывается веб-представление ASWebAuthenticationSession, которое предоставляет пользователю возможность входа на страницу. , Как только аутентификация завершена, веб-представление не закрывается в отличие от WKWebView. В левом верхнем углу веб-представления есть опция отмены, она вызывает обработчик завершения с ошибкой.
Есть ли способ закрыть веб-просмотр после завершения сеанса аутентификации?