美文网首页Mobile ...
iOS SecurityCodeAutoFill的使用

iOS SecurityCodeAutoFill的使用

作者: Synemin | 来源:发表于2018-06-15 18:26 被阅读238次

    WWDC2018在6月份如期而来,也是到了继续学习新功能的时期。今天分享下新的功能,关于登录注册时自动填充/建议账户密码及新特性读取短信验证码。

    去年的WWDC中,我们可以借助系统提供的接口来实现自动读取钥匙串中用户已有账户密码

    代码配置

    let userTextField = UITextField() 
    userTextField.textContentType = .username
    
    let passwordTextField = UITextField() 
    passwordTextField.textContentType = .password
    

    Ps:如果有特殊要求,记得对键盘类型做修改。

    今年,我们还可以像系统一样给用户提供建议密码,而且我们可以自定义所提供的密码的规则。这个可以用到我们的登录注册之中。

    let userTextField = UITextField() 
    userTextField.textContentType = .username
    
    let newPasswordTextField = UITextField() 
    newPasswordTextField.textContentType = .newPassword
    let confirmNewPasswordTextField = UITextField() 
    confirmNewPasswordTextField.textContentType = .newPassword
    

    AutoFill will:

    • Infer the view controller type
    • Check eligibility based on associated domains Detect relevant sign up form elements Suggest a user name
    • Insert a strong password
    • Save the password after user signs up
      PS:上面这个是工作机制,可以适当了解下,可能哪里出问题了就能从这上面找到原因

    需要注意到是,苹果提示说注册为用户提供建议密码时,用户名与密码应在同一个界面,应该很少有产品会把这些信息分离吧😓。

    配置建议密码时需要给定密码的规则,否则建议新密码不会生效并提示错误

    let newPasswordTextField = UITextField()
    ...
    let rulesDescriptor = "allowed: upper, lower, digit; required: [$];" 
    newPasswordTextField.passwordRules = UITextInputPasswordRules(descriptor: rulesDescriptor)
    

    Storyboard 配置

    登录的账户密码配置
    样式 登陆的用户名配置

    这个是用户名的配置,可以选择e-mail、username等等等,具体的可以自己根据具体情况,或者都试试怎么用的~


    登录的密码配置

    登录界面就是这么配置,非常快速。重复的地方就不在标记了,只对需要注意到地方标记了一下。

    注册的账户密码配置
    注册账户名
    注册的密码

    这个content type 是NewPassword 只有iOS12 下才有,而且在这下面多了一个Password Rule选项,需要填入建议密码的规则,这个rule下面简单说下。

    Password Rule

    这个规则是苹果提供的,会生成20字节长度的密码,包含了大小写,数字等。可以根据苹果给定的来只做相应自己的密码生成规则,但是又不建议这么做。因为当前默认的密码生成规则已经是优化的可以了,如果在此基础上继续限定的话,会使密码的重复性增加,破解的难度降低。 除非有特殊需求,不然不建议在针对默认规则做限制生成新的规则。
    具体的可以去官网的规则生成工具那里看看。
    Password Rules Validation Tool

    Security Code AutoFill

    我最喜欢的功能,帮助用户直接从短信读取验证码,不用再看短信,记密码,回App录入这么麻烦了,有了这个就可以直接从系统读取到短信的验证码自动填入,只需要动动你的手指头~~~
    看下苹果的效果图


    收到短信
    自动提示~

    代码也非常简单

    let securityCodeTextField = UITextField() 
    securityCodeTextField.textContentType = .oneTimeCode
    

    storyboard的配置与username没有区别。其他的事情只需要等着系统帮你做就好了~,但是,是的还有但是,你必须使用系统键盘才会有这个提示。
    我自己体验了一下,虽然Session演示中给的都是对英文的自然语言分析,其实对中文还算OK。截图没找到就不上了,大家可以升级下iOS 12找个webView 的登录界面试一下,主流公司的产品基本都适配了。

    设备间验证

    Federated authentication,暂时这么叫吧,这个是我暂时没法验证的,是各个设备之间做验证登录等等一系列操作。等有机会继续补充上去。

    相关文章

      网友评论

        本文标题:iOS SecurityCodeAutoFill的使用

        本文链接:https://www.haomeiwen.com/subject/vlpmeftx.html