在iOS 12的测试版中,我观察到系统会在键盘建议中展示短信验证码。那么,他们是否为开发者创建了相应的API呢?或者这只是一个操作系统内置的功能?
很遗憾,您无法阅读完整的消息,只能阅读消息中的验证代码。
Swift:
@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位的纯数字
例如:123 1234 12345 666666 1234567 12345678 ...
以下验证码系统无法识别:
(i). 长度小于3或大于8 (ii). 包含字母
例如:1 12 123a 9h7d 123456789 ...
其他提示:
安全码自动填充只能与系统键盘一起使用,无法与自定义键盘一起使用。
虽然没有API,但您需要将UITextField
属性的textContentType
设置为.oneTimeCode
otpTextField.textContentType = .oneTimeCode
还有一件事:
如果您为文本字段使用自定义输入视图, iOS无法显示必要的自动填充UI。
除其他回答外,经测试发现文本消息需要在数字前包含“验证号码”或“代码”才能正常工作。
可行的格式:
不可行的格式:
很抱歉,这方面没有公共API。它由操作系统自动处理。 您只需要将UITextField的输入视图的textContentType属性设置为oneTimeCode即可。
textField.textContentType = .oneTimeCode