如何获取密码自动填充以与ASWebAuthenticationSession一起使用?

问题描述 投票:3回答:1

我有一个遵循password auto-fill requirements的示例HTML表单。使用内置的Safari应用程序导航到不带该应用程序的网页时,用于登录和注册表单的本机“密码自动填充”对话框正确显示:

enter image description here

但是,在应用程序中查看时,相同的流程不会在登录或注册提交中触发对话框。它只是关闭登录/注册屏幕而没有任何错误。

这是我的视图控制器的外观:

class ViewController: UIViewController {

    @IBAction func didTapLoginButton() {
        let session = ASWebAuthenticationSession(
            url: URL(string: "https://example.com/login.html")!,
            callbackURLScheme: "customscheme") {
                print($0, $1)
        }

        session.prefersEphemeralWebBrowserSession = true
        session.presentationContextProvider = self
        session.start()
    }
}

extension ViewController: ASWebAuthenticationPresentationContextProviding {

    func presentationAnchor(for session: ASWebAuthenticationSession) -> ASPresentationAnchor {
        view.window!
    }
}

是否可以通过ASWebAuthenticationSession使密码自动填充与移动应用一起使用?我也尝试过SFSafariViewController,但问题相同。我有一个sample iOS app here。任何帮助或经验都将不胜感激!

ios swift autofill aswebauthenticationsession
1个回答
0
投票

docs

密码自动填充仅建议您的应用的凭据关联的域,并且用户必须使用Face ID或在访问这些凭据之前,请触摸ID。

请确保该应用与您的域(代码中的example.com)相关联。这将使iCloud钥匙串可以识别登录表单并建议该域的所有存储凭据。

  1. 将您的应用与域相关联,如here所述。
  2. html标签添加到您的登录表单中,如here所述。
  3. 启动ASWebAuthenticationSession之前,请确保用户已在iOS设备上正确认证。
© www.soinside.com 2019 - 2024. All rights reserved.