iOS12自动填充账户密码,提示保存账户和密码

在iOS11中,Apple已经做了启发式功能,可以让开发者在无感知的情况下,支持密码的快速填充,但是为了更好的用户体验和降低未来版本中可能出现的bug,建议对不同的功能做一些额外的步骤配置. 默认效果是这样的,QuickType Bar上没有关联域的账户密码可选

iOS12自动填充账户密码,提示保存账户和密码_第1张图片
图片.png

工作原理

iOS会自动推断登录场景
检查关联的域是否有效合格,从iCloud 钥匙串中筛选出符合的账户和密码显示在QuickType Bar
根据设定输入框的textContentType类别,找到用户名和密码输入框,在用户点击QuickType Bar上的账户密码是填充到对应位置
检测登录操作,在登录页面要从视图层次结构中移除的时候,提示是否保存/更新账户密码

开发人员需要配置的步骤

Associated Domains
设置UITextField的textContentType为对应类型

1.在苹果开发者后台开启APP的Associated Domains服务

  1. 设置Associated Domains
iOS12自动填充账户密码,提示保存账户和密码_第2张图片
图片.png

Xcode中项目配置,开启Domains,点击"+"添加一项, webcredentials:后面的"coderxllau.github.io"改为自己关联的域,例如webcredentials:www.baidu.com等

webcredentials后填写我们网站的Domain,即我们要关联的域名。

登录Apple开发者网站,

iOS12自动填充账户密码,提示保存账户和密码_第3张图片
图片.png
iOS12自动填充账户密码,提示保存账户和密码_第4张图片
图片.png
iOS12自动填充账户密码,提示保存账户和密码_第5张图片
图片.png

确认Associated Domains已经启用。同时,我们要记录一下当前应用的Prefix,后面会用到。

网站的设置

  1. 新建一个文件,名为apple-app-site-association,无后缀。内容如下
{
    "webcredentials":{
        "apps":["${Prefix}.com.zlucy.Autofill-Demo"] //${Prefix}处填写我们上面记录下来的Prefix,后加上需关联的应用的 Bundle ID
    }
}

保存文件,命名为apple-app-site-association

  1. 我们想要在APP里打开的页面或者Action,域名选定的static.mydomain.com这个子域名。是将此文件扔到服务器域名解析的根目录下。即 http://static.mydomain.com/apple-app-site-association 是能访问的,会将此文件下载到本地。

    这还不够。我们需要https,而不是http。
    我们需要在我们要关联的网站上添加这个文件,路径如下:

https://www.zlucy.com/.well-known/apple-app-site-association
https://www.zlucy.com/apple-app-site-association

网站设置完成。

再次运行我们的App,App会在启动时访问如上的地址进行验证,验证通过后,就可以看到如效果图一样的功能了。

你可能感兴趣的:(iOS12自动填充账户密码,提示保存账户和密码)