在iOS11中,Apple已经做了启发式功能,可以让开发者在无感知的情况下,支持密码的快速填充,但是为了更好的用户体验和降低未来版本中可能出现的bug,建议对不同的功能做一些额外的步骤配置. 默认效果是这样的,QuickType Bar上没有关联域的账户密码可选
图片.png工作原理
iOS会自动推断登录场景
检查关联的域是否有效合格,从iCloud 钥匙串中筛选出符合的账户和密码显示在QuickType Bar
根据设定输入框的textContentType类别,找到用户名和密码输入框,在用户点击QuickType Bar上的账户密码是填充到对应位置
检测登录操作,在登录页面要从视图层次结构中移除的时候,提示是否保存/更新账户密码
开发人员需要配置的步骤
Associated Domains
设置UITextField的textContentType为对应类型
1.在苹果开发者后台开启APP的Associated Domains服务
- 设置Associated Domains
Xcode中项目配置,开启Domains,点击"+"添加一项, webcredentials:后面的"coderxllau.github.io"改为自己关联的域,例如webcredentials:www.baidu.com等
webcredentials后填写我们网站的Domain,即我们要关联的域名。
登录Apple开发者网站,
图片.png 图片.png 图片.png确认Associated Domains已经启用。同时,我们要记录一下当前应用的Prefix,后面会用到。
网站的设置
- 新建一个文件,名为apple-app-site-association,无后缀。内容如下
{
"webcredentials":{
"apps":["${Prefix}.com.zlucy.Autofill-Demo"] //${Prefix}处填写我们上面记录下来的Prefix,后加上需关联的应用的 Bundle ID
}
}
保存文件,命名为apple-app-site-association
。
-
我们想要在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会在启动时访问如上的地址进行验证,验证通过后,就可以看到如效果图一样的功能了。
网友评论