实现此功能需要注意一下几点:
- 需要有一个支持HTTPS协议的域名,因为App实现用户名密码自动匹配要和该网站关联。
- 开启iPhone的iCloud钥匙串服务。
App内的设置
-
设置 TextField 的 ContentType
在iOS11中,TextContentType新增加了
Username
、Password
类型,我们只需要将相应的TextField设置为对应的ContentType即可。
设置完成后,用户可以在输入用户名与密码时,通过点击QuickType bar右侧的钥匙串按钮,在所有的保存的密码中选择要输入的用户名和密码了(如下图)。但是,这样还不是很方便,如果用户保存的密码很多,需要在列表中查找也并不很方便。我们需要在QuickType的候选区列出用户曾经在我们的网站保存过的密码。
-
设置Associated Domains
webcredentials后填写我们网站的Domain,即我们要关联的域名。
-
登录Apple开发者网站
确认
Associated Domains
已经启用。同时,我们要记录一下当前应用的Prefix
,后面会用到。
网站端设置
- 新建文件,内容如下json格式文件:
{
"webcredentials":{
"apps":["YH6UHB9OL.com.tfkjLee.pass"]
//YH6UHB9OL是我们上面记录下来的Prefix,com.tfkjLee.pass应用的 Bundle ID
}
}
保存文件,命名为
apple-app-site-association
。重要的事情说一遍: 不要后缀名
-
我们需要在我们要关联的网站上添加这个文件,路径为
根目录
或者.well-known
,放一个即可,路径如下:https://www.baidu.com/.well-known/apple-app-site-association https://www.baidu.com/apple-app-site-association
我们可以通过浏览器访问上面的地址,确保刚才的文件可以通过浏览器下载。
结束语
完成以上的设置就可以实现密码填充功能了,App QuickType的候选区列出密码是和域名相关的,也就是说如果多个app用的同一个域名,那么系统会把这几个app的密码都提示出来!!!