如何在 WKWebView 中使用带有钥匙串访问的自动填充

How to use autoFill with keychain access in WKWebView

在 i0S 11.0 中,在应用程序中引入了用户名和密码自动填充功能,但我在 reddit 上发现 post 也可以在 WKWebView 中使用它,但找不到任何说明如何使用它,如何让 WKWebView 知道那个特定的 inputView 是密码和用户名,并在键盘上方显示自动填充

几乎可以肯定这已在别处得到解答,但 Apple 文档中的 Enabling Password AutoFill on an HTML Input Element 正是您所需要的。

TL;DR:

<input id="user-text-field" type="email" autocomplete="username"/>
<input id="password-text-field" type="password" autocomplete="current-password"/>

Apple Dev 站点上似乎没有关于 wkWebView 的直接文档。 Frenchie 的回答和参考仅供 UI 查看。 wkWebView 可能要求应用程序在出现“保存密码”对话框之前具有域信任权利,但这只是推测。如果没有域授权,则会生成密码自动填充提示,但只是一般性的,并且不会使用建议的适当域凭据 - 这告诉我们自动填充 is 已触发,但它并不能明确识别域在 wkwebview 中。将密码保存到 autofill/keychain 在 Safari 中有效,但在 wkwebview 中不触发。我们将试验域信任,看看它是否允许自动填充像在 Safari/SafariViewController.

中一样工作

我们有同样的问题。我们将 Swift 和 WkWebView 用于 hyprid 应用程序。

它似乎记录在“Password AutoFill”中。根据文档,您需要两件事:

  1. Set up your app’s associated domains.

我们已经设置了一个关联的域,因为无论如何我们都需要它作为通用链接。通用链接在我们的应用程序中有效。这样就实现了。

  1. Set the correct AutoFill type on relevant text fields. ... For a web app, see Enabling Password AutoFill on an HTML Input Element.

我们已经按照“Enabling Password AutoFill on an HTML Input Element

中的说明设置了 HTML 参数

当我使用 safari 访问我们的注册页面时:它会为我提供一个安全密码,并让我将此密码(或我自己的自定义密码)保存在我 iPhone.[=14= 的钥匙串中]

当我在我的混合应用程序中转到相同的注册页面时,不会发生这种情况。 但是当我尝试登录时,混合应用程序确实使用了 iOS keyChain 中已经可用的凭据。

我认为使用 WkWebView 不可能实现更多,这 a) 非常烦人 b) 应该记录下来