在iOS中使用密码填充功能

在iOS中使用密码填充功能

密码自动填充支持第三方 App 是 iOS 12 中包含的众多新功能之一。为了提高用户体验,越来越多的APP支持了这个功能,现在将这个特性总结一下(虽然貌似有点晚。。。)。

手机设置

首先,你需要启用密码自动填充功能。然后,进入“设置”>“密码和帐户”,随后开启“自动填充密码”即可。

开发者后台配置

新建APP

如果你是新建的APP,可以按照这个流程:

第一步新建

选择APP ID,然后continue:

第二步

配置APP所需的东东,然后记得勾选上我们这次需要的Associated Domains选项:

原有APP

如果是原有的APP则直接选择你需要配置的APP ID:

然后勾选Associated Domains即可:

当然,你也可以直接去Xcode中设置:

需要注意的是,即使你使用了xcode这个方式,你仍然需要登录开发者后台,将App ID Prefix拷贝下来,以供后面生成的apple-app-site-association文件使用。

配置后的xcode效果图:

内容为:

webcredentials: api.hgxcs.huaguosun.com

注意:api.hgxcs.huaguosun.com为你托管文件apple-app-site-association的域名,你需要将apple-app-site-association文件放在该域名下供Apple来验证APP。并且,你的域名需要支持HTTPS。

apple-app-site-association的内容格式如下:

{
    "webcredentials":{
        "apps":["TTUAZSH44S.com.huaguoshan.steward"] 
    }
}

其中TTUAZSH44S为你的APP ID prefix,com.huaguoshan.steward为你的bundle id。

如果你不是很确定自己的配置是否正确,可以去Branch.io Apple App Site Association Validator 或者 Apple App Search API Validation Tool 验证一下.

开始使用

我们将分别测试注册、登录、修改密码这三个功能。页面如下:

image

注册

image

进入注册页面,也就是2个textField,当你输入账号时感觉也没什么不同,但是点击输入密码时,系统会弹出这个页面:

image

系统会针对输入密码时做出询问:你是使用iPhone为你生成的强密码,还是选择自定义密码。如果你选择的是普通密码,那么就可以手动输入自己定义的密码,选择strong password,那么iPhone会为你自动创建密码。

当我们点击注册按钮后,系统就会询问你是否要保存密码到iCould中。如果你选择保存密码,那么Apple会通过但是不使用存储到iCould的钥匙串中,那么下次即使你更换了其他的设备,只要是同一个iCould账号,同一款APP,登录是就会方便多了。效果见后面的登录。

image

OC代码实现:

    passwordTextField.placeholder = @"请输入密码";
    accountTextField.placeholder = @"请输入用户名";
    if (@available(iOS 11.0, *)) {
        accountTextField.textContentType = UITextContentTypeUsername;
        //重点,密码框指定为UITextContentTypeNewPassword, 指定自动填充密码
         passwordTextField.textContentType = UITextContentTypeNewPassword;
    }
    // 有人说账号的textField有时不生效,需要指定UIKeyboardTypeEmailAddress,我测试并没遇到这个问题
    accountTextField.keyboardType = UIKeyboardTypeEmailAddress;
    passwordTextField.secureTextEntry = YES;

swift的设置是一样的,我是直接在storyboard中设置的,就不上代码了。

ios12之上的版本,你还可以指定生成密码的规则,你还可以使用官方的密码生成规则工具

// ios12
 passwordTextField.passwordRules = [UITextInputPasswordRules passwordRulesWithDescriptor:@"required: lower; required: upper; required: digit; required: [-]; required: [@]; required: [+]; minlength: 40;"];

登录

我们先使用注册功能,注册3个账号,账号为110,119,120。当我们来到登录页面,会出现提示:

image

点击右边的小钥匙,可以看到在APP下你存储的所有密码:

image

OC代码实现:

    passwordTextField.placeholder = @"请输入密码";
    accountTextField.placeholder = @"请输入用户名";
    if (@available(iOS 11.0, *)) {
        //重点,passwordTextField的类型指定为UITextContentTypePassword
        accountTextField.textContentType = UITextContentTypeUsername;
         passwordTextField.textContentType = UITextContentTypePassword;
    }
    passwordTextField.secureTextEntry = YES;

更换密码和发送验证码

image

点击弹出的密码,就会自动填充到验证码框。

OC代码实现:

accountTextField.textContentType = UITextContentTypeUsername;
passwordTextField.textContentType = UITextContentTypeNewPassword;
smsCodeTextField.textContentType = UITextContentTypeOneTimeCode;

网页实现,我还没有实验,可以参考官方文档

参考链接


   转载规则


《在iOS中使用密码填充功能》 刘星星 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
微信小程序蓝牙热敏打印机调试总结 微信小程序蓝牙热敏打印机调试总结
### 1.扫描设备筛选 要搜索的蓝牙设备主 service 的 uuid 列表。某些蓝牙设备会广播自己的主 service 的 uuid。如果设置此参数,则只搜索广播包有对应 uuid 的主服务的蓝牙设备。建议主要通过该参数过滤掉
2020-02-21
下一篇 
优化uni-app更新策略思路 优化uni-app更新策略思路
口语描述 全量更新: 全量更新是指发APP包更新,对应的iOS是指发IPA包到appstore,Android发apk包到商城。 增量更新: 指uni-app提供的热更新生成的wgt文件,可以下载完自动安装,然后重启APP即可完成更
2019-12-18
  目录