Ios 如何让密码自动填充与ASWebAuthenticationSession一起使用?
我有一个示例HTML表单,它遵循。使用内置Safari应用程序导航到没有应用程序的网页时,登录和注册表单的本机密码自动填充对话框将正确显示: 但是,在应用程序中查看时,相同的流不会触发登录或注册提交中的对话框。它简单地取消登录/注册屏幕,没有任何错误 以下是我的视图控制器的外观:Ios 如何让密码自动填充与ASWebAuthenticationSession一起使用?,ios,swift,autofill,aswebauthenticationsession,Ios,Swift,Autofill,Aswebauthenticationsession,我有一个示例HTML表单,它遵循。使用内置Safari应用程序导航到没有应用程序的网页时,登录和注册表单的本机密码自动填充对话框将正确显示: 但是,在应用程序中查看时,相同的流不会触发登录或注册提交中的对话框。它简单地取消登录/注册屏幕,没有任何错误 以下是我的视图控制器的外观: class ViewController: UIViewController { @IBAction func didTapLoginButton() { let session = ASW
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
,但问题相同。我有一本书。非常感谢任何帮助或经验 来自:
密码自动填充建议仅为应用程序的
关联的域,并且用户必须使用面ID或
访问这些凭据之前,请触摸ID
确保应用程序与您的域关联(代码中的example.com
)。这将允许iCloud Keychain识别登录表单并建议该域的任何存储凭据
html
标记添加到登录表单中ASWebAuthenticationSession
之前,确保用户已在iOS设备上正确验证在Looong研究之后,我发现的唯一有效且干净的解决方案是按照建议添加登录后页面。这样就不会错过“保存凭据”提示
不幸的是,我没有从iOS端找到任何解决方案,这将非常感谢,因为在我的情况下,由于项目限制,我无法更改服务器端。这不起作用,因为web凭据仅适用于本机文本字段。如果我们必须这样做,它将不适用于任何第三方OAuth服务,如Google、GitHub、Facebook等登录,因为他们必须与SDK的每个消费者更新相关文件。此外,这是另一个可行的解决方案: