Как представить контроллер представления из prepareInterfaceToProvideCredential - PullRequest
0 голосов
/ 04 февраля 2020

При реализации менеджера паролей через расширение и реализации ASCredentialProviderViewController я смог заставить мой менеджер паролей заполнять учетные данные пользователя, и все замечательно.

Однако, когда мне нужно аутентифицировать пользователя, потому что его токен доступа истек или они еще не аутентифицировались, мне нужно предоставить пользователю пользовательский интерфейс аутентификации пользователя.

Согласно документам prepareInterfaceToProvideCredential вызывается, когда я звоню

self.extensionContext.cancelRequest(withError: NSError(domain: ASExtensionErrorDomain, code:ASExtensionError.userInteractionRequired.rawValue)),

Это работает! В комментариях ASCredentialProviderViewController говорится:

    /*
     Implement this method if provideCredentialWithoutUserInteraction(for:) can fail with
     ASExtensionError.userInteractionRequired. In this case, the system may present your extension's
     UI and call this method. Show appropriate UI for authenticating the user then provide the password
     by completing the extension request with the associated ASPasswordCredential.
    */

Этот метод вызывает . Отлично!

Документы редки, и я не уверен, что я должен делать, чтобы показать пользовательский интерфейс.

Я пытался просто показать модал:

let vc = UIViewController()
vc.modalPresentationStyle = .fullScreen
self.present(vc, animated: true, completion: nil)

Когда я это делаю, ничего не происходит.

Как представить контроллер представления пользователя для аутентификации в моем сервисе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...