【发布时间】:2018-11-20 07:26:03
【问题描述】:
在 iOS 12 的 Beta 版中,我观察到它在键盘建议中提供 OTP(来自 SMS)。
那么他们为开发人员创建了任何 API 吗?或者这只是一个操作系统功能。
【问题讨论】:
在 iOS 12 的 Beta 版中,我观察到它在键盘建议中提供 OTP(来自 SMS)。
那么他们为开发人员创建了任何 API 吗?或者这只是一个操作系统功能。
【问题讨论】:
没有api,但需要将textContentType设置为.oneTimeCode的UITextField属性
otpTextField.textContentType = .oneTimeCode
还有一件事,
如果您对文本字段使用自定义输入视图, iOS 无法显示必要的自动填充 UI。
【讨论】:
很遗憾,您无法阅读完整的消息,您只能阅读消息中的验证码。
斯威夫特:
@available(iOS 12.0, *)
public static let oneTimeCode: UITextContentType
myTextField.textContentType = .oneTimeCode
目标-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。
textField.textContentType = .oneTimeCode
【讨论】:
添加其他答案,经过测试,似乎短信需要在号码之前包含“验证码”或“代码”才能正常工作。
工作:
不工作:
【讨论】:
值得一提的是,似乎需要在手机上打开“自动填充密码”键盘选项。
【讨论】: