iOS12 自动填充验证码实现

工作原理:

当输入框成为第一响应者的时候,使用数据检测器启发式来推断传入消息携带验证码,把检测到验证码显示到QuickType Bar上,用户点击即可实现验证码填充

效果如下

键盘提示效果

iOS12 自动填充验证码实现_第1张图片

 

一、源码适配方式

设置输入框的输入类别为UITextContentTypeOneTimeCode即可.

if (@available(iOS 12.0, *)) {
    //Xcode 10 适配
    self.codeField.textContentType = UITextContentTypeOneTimeCode; 
    //非Xcode 10 适配
    self.codeField.textContentType = @"one-time-code";
}

二、xib适配方式

可在xcode10 修改xib的Content Type为One Time Code

xib设置方式

 

如果你的工程暂时无法升级使用xcode10的,可先用xcode10修改xib(如上图),然后就会有(如下图)的修改记录,提交即可

xcode10 xib适配记录

iOS12 自动填充验证码实现_第2张图片

 

三、短信验证码格式

验证短信验证码格式的是否合法的一个办法是打开iPhone上【短信】,点击信息中的验证码,如果从底部呼出选项 拷贝验证码 选项,可说明是可以的;反之不行

常见几种正确短信格式
1.验证码是:123456
2.验证码:123456
3.验证码123456
4.验证码为123456

缺陷:

对于验证码来源没有做到很好的区分,任意渠道的短信验证码都会显示到QuickType Bar上

适配注意点:

1.如页面中多个输入框,需要将其他输入框指定对应type,不然未指定的所有输入框都会促发验证码提示



转载链接:https://www.jianshu.com/p/81469636c543

你可能感兴趣的:(iOS开发小技巧,转载,objective-c)