在iOS 12的测试版中,我观察到它在键盘建议中给出了OTP(来自SMS) 那么他们为开发人员创建的API是什么?或者那只是一个操作系统功能。
答案 0 :(得分:7)
这是操作系统功能,但您需要设置UITextField
的输入视图的textContentType
属性oneTimeCode
。
otpTextField.textContentType = .oneTimeCode
注意:安全码自动填充功能仅适用于系统键盘,不适用于自定义键盘。
当你得到OTP时,它看起来像这样:
答案 1 :(得分:3)
不幸的是,您无法阅读完整的邮件,只能阅读邮件中的验证码。
快捷键:
@available(iOS 12.0, *)
public static let oneTimeCode: UITextContentType
myTextField.textContentType = .oneTimeCode
Objective-C:
UITextContentType const UITextContentTypeOneTimeCode NS_AVAILABLE_IOS(12_0);
myTextField.textContentType = UITextContentTypeOneTimeCode;
系统可以识别以下验证码:
长度为3-8的纯数字
like:123 1234 12345 666666 1234567 12345678 ...
系统无法识别以下验证码:
(i)。代码长度小于3或大于8 (ii)。包括字母
like:1 12 123a 9h7d 123456789 ...
其他:
安全代码自动填充仅适用于系统键盘。它不适用于自定义键盘。
答案 2 :(得分:2)
没有api,但您需要将textContentType
设置为.oneTimeCode
属性的UITextField
otpTextField.textContentType = .oneTimeCode
还有一件事,
如果您对文本字段使用自定义输入视图, iOS无法显示必要的自动填充UI。
答案 3 :(得分:0)
没有为此的公共API。它由操作系统自动处理。 您只需要将UITextField的输入视图的textContentType属性设置为oneTimeCode。
textField.textContentType = .oneTimeCode
答案 4 :(得分:0)
添加到其他答案后,经过测试,似乎短信需要在号码之前包含“验证码”或“代码”。
工作:
不起作用:
答案 5 :(得分:0)
值得一提的是,似乎需要在手机上打开“自动填充密码”键盘选项。