Password Auto Fill

前言

在 WWDC 17 Session 206 中,介绍了这个 iOS 11 加入的新功能。尽管这个功能特别简单,但几乎是今年所有发布的新功能中我最喜欢的一个了。

如果你之前使用过类似于 “1Password” 的产品,并且尝试使用复杂的密码登录 “手机QQ” , 你就会处于一种崩溃的状态(”手机QQ” 不支持复制粘贴;我要怎么把我变态的密码输入进去啊)。而当我升级到 iOS 11 Beta 版本之后,我发现 “手机QQ” 居然支持了 “Password Auto Fill” 这个 Feature,那叫一个欣喜若狂啊。

基础功能

“Password Auto Fill”的功能支持非常简单,只需要设置你的 textFieldcontentTypeusernamepassword 就行。 就像这样:

override func viewDidLoad() {
   super.viewDidLoad()
   usernameTextField.textContentType = UITextContentType.username
   passwordTextField.textContentType = UITextContentType.password
}

理论上来说,上述的代码也可以在 Storyboard 或者是 nib 的图形界面中完成,但是我试了一下一直不成功,只能通过代码来实现,不知道是不是 Beta 版本的 bug。

好了,截止目前为止 “Password Auto Fill” 的基础功能已经接入完毕,你可以获得和”手机QQ”一样的体验效果。

自动识别网站

接下来是 “Password Auto Fill” 的一个更高级的功能,能够自动在 “QuickType” 区域,显示出你的网站,用户可以直接从 “QuickType” 选择对应的网站密码,免去了搜索的过程。就像下图:

整个过程也很简单: 一、在项目的 “Associated Domains” 中输入 “webcredentials:你的域名”,比如 我的域名是 “tjfa.github.io” 我就输入 “webcredentials:tjfa.github.io” ,这个域名必须是 https 的

二、确保你的 “App ID” 也关联了 “Associated Domains”, 具体可以去 https://developer.apple.com/account/ 中查看,如果这两个都配置正确 “Associated Domains” 下面的 “Steps” 会出现两个勾, 就像上图

三、创建一个 JSON 文件,内容如下

{
   "webcredentials": {
          "apps": ["YPE39BAJY9.me.qiufeng.www.demo.autofillpassword"]
         }
}

其中 YPE39BAJY9 是你的 “TeamID”,上述截图中的 “Prefix”, 不是 Xcode 中的 “Signing Certificate”。 把这个文件,放到你域名下,确保访问 “<https://example.com/.well-known/apple-app- site-association>“ 或者 “https://example.com/apple-app-site-association“ 能够访问到这个文件。 比如,我的域名是 “https://tjfa.github.io“, 我选择后者的域名,那么我访问 “https://tjfa.github.io /apple-app-site-association” 就应该出现如下内容:

四、确保你设备中 “Settings” -> “Accounts & Passwords” -> “App & Website Passwords” 有你网站的密码

五、大功告成,调试运行。可以看到和我一样,在 “QuickType” 区域,程序为你选择了对应的网站账号密码,只需要直接点击即可。

关于调试

调试的话,需要看 Device 的 Log, 在 Xcode 中是看不到的。比如:当我把 “Associated Domains” 换成另外一个域名 “qiufeng.me” 的时候(这个域名不支持 https),然后重新运行,虽然也有 “Password Auto Fill”的功能,但是缺少了 “QuickType” 的自动识别网站。

这时候打开 App “Console “, 选择到你的 Device, 然后在搜索框输入 “swcd”, 可以看到对应的错误帮助调试。

关于添加密码

目前好像并不支持这个功能,只能通过手动添加或者访问某个网站之后,通过 Safari 自动记录下来。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Seebug漏洞平台

Git Submodule 漏洞(CVE-2018-17456)分析

国庆节的时候,Git爆了一个RCE的漏洞,放假回来进行应急,因为公开的相关资料比较少,挺头大的,搞了两天,RCE成功了

794
来自专栏Java技术栈

Spring Boot实现热部署

在Spring Boot实现代码热部署是一件很简单的事情,代码的修改可以自动部署并重新热启动项目。 引用devtools依赖 <dependency> ...

2827
来自专栏林德熙的博客

win10 UWP 发邮件

UWP 下如何发邮件?可以使用mailto:xx?subject=*方式发送? 本文:如何在 UWP 使用默认邮件发邮件。

632
来自专栏bboysoul

渗透测试工具(AngryFuzz3r )

直接clone下来 git clone https://github.com/ihebski/angryFuzzer.git 之后安装下它 的依赖 sud...

713
来自专栏Hadoop实操

CDH集群升级Python3异常问题分析

在CDH集群中所有节点/opt/cloudera/anaconda3部署了Python3的安装包,如下描述:

1171
来自专栏老司机的简书

XCode打framework包、cocoapods库制作及Pods库的二进制切换

近来公司的公共库里有点小问题,但是公共库打成了framework,即使手上有源码也很难调试。网上百度了很多方法,有临时方法,也有比较好的方案,写一篇博客记录下来...

932
来自专栏FreeBuf

忘记密码咋办?本地密码检索工具 – LaZagne Project

简介 LaZagne project 是一款用于检索大量存储在本地计算机上密码的开源应用程序。每款软件他们保存密码的方法或许不尽相同(明文,API,算法,数据...

1817
来自专栏Golang语言社区

【Go 语言社区】linux 下Go服务器部署(也同样适合C++等)

作为服务器开发人员,GO语言内网测试数据及调试肯定很简单,如果你在Windows下开发 直接编成EXE执行就可以,然后部署外网在打包成linux的执行文件(交...

3128
来自专栏码农阿宇

ASP.NET Core轻松入门之Configure中IHostingEnvironment和IApplicationLifetime的使用

在StratUp.cs的Configure方法中,除了 常用的参数除了IApplicationBuilder和在我上一篇文章中提到的Iconfiguration...

5895
来自专栏nimomeng的自我进阶

iOS模块化实践 -- 利用CocoaPods拆分项目

所谓Spec Repo,就是Pods的索引。一旦在podfile中设置source为某个私有repo的git地址,在进行pod update的时候就会去这个re...

1162

扫码关注云+社区