iOS 11密码自动填充

密码自动填充是iOS 11的令人兴奋的功能之一。输入密码始终是造成麻烦的原因。 在iOS 11中,您无需记住密码。 就像safari提示输入密码一样,现在您的应用程序可以自动填写用户凭据,并为他们提供更快的登录速度。

如何执行?

在您的应用程序中实现密码自动填充非常简单。 您需要做的就是设置textContentType 用户名和密码文本字段。

  userNameTextField.textContentType = .username
 passwordTextField.textContentType = .password 

同样可以在情节提要中完成

QuickType栏

让我们运行该应用程序,看看它在屏幕上的显示方式。 当点击用户名或密码文本字段时,快捷类型栏将显示并带有一个钥匙图标。 单击钥匙图标将要求使用Touch-Id进行身份验证,然后它将列出钥匙串中保存的所有密码。 选择任何密码将填充用户名和密码文本字段。

关联应用和网站

到目前为止,我们还没有告诉应用程序那是我关联的网站。 因此它显示了钥匙串中的所有密码。 现在,让我们关联我们的应用程序和网站。 首先,我们需要将我们的网站域添加到Xcode中的“ 关联域”中。 在Xcode项目设置-> Capabilites->关联域中,添加您的网站域。

现在,您的应用程序知道您关联的网站。 您的网站应确认该关联。 为此,使用以下内容创建一个名为apple-app-site-association的json文件。

  {
    “网络凭证”:{
          “应用”:[“ SR9HR505U.com.anilvarghese.pw-autofill”]
     }
 } 

SR9HR505U 是您的 团队ID com.anilvarghese.pw- autofill是应用程序bundleId。 将此文件添加到您的网站根文件夹或.well-known目录(提供)。

启动应用程序时 iOS使用安全连接在服务器上查找此文件(您必须在服务器上设置SSL)。 应用程序将自动向https://www.example.com/apple-app-site-association发送请求,并在响应中查找您的应用程序bundleId。

您可以通过在运行应用程序时在控制台中检查设备日志来验证设置。 如果一切正常,您将获得“ SiteApproved ”。

现在,我们在应用程序和网站之间建立了双向关联。 启动应用程序,然后注意QuickType栏会在您的键盘上提示您的凭据,以便您单击即可登录。

酷😎。 试试看 如果您有任何疑问,请告诉我。


你们中的一些人问我有关自动填充功能是否保存/更新钥匙串中的密码?

它不会自动更新密码。 但是有一种方法可以做到这一点,称为共享Web凭据。 使用这个 您的本机iOS应用可以与他们的网站共享凭据。 用户可以在应用程序内创建一个新帐户,更新密码或删除其帐户。 然后,这些更改将由iCloud同步并由Safari使用,从而可以在应用程序和网站之间共享用户凭据。 但是,这需要用户关注。

这篇苹果文章很好地解释了共享Web credentail。