iOS 12短信阅读API?

问题描述 投票:6回答:5

在iOS 12的Beta版本中,我观察到它在键盘建议中给出了OTP(来自SMS)。 那么他们为开发人员创建的API是什么?或者那只是一个操作系统功能。

ios sms ios12
5个回答
7
投票

这是操作系统功能,但您需要设置UITextField的输入视图的textContentType属性oneTimeCode

otpTextField.textContentType = .oneTimeCode

注意:安全代码自动填充仅适用于系统键盘,它不适用于自定义键盘。

当你得到OTP时,它看起来像这样:

enter image description here


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

喜欢:123 1234 12345 666666 1234567 12345678 ......


系统无法识别以下验证码:

(i)。代码长度小于3或大于8(ii)。包括字母

喜欢:1 12 123a 9h7d 123456789 ...


其他:

安全代码自动填充功能仅适用于系统键盘。它不适用于自定义键盘。


2
投票

没有api,但你需要设置textContentType作为.oneTimeCode属性的UITextField

otpTextField.textContentType = .oneTimeCode

还有一件事,

如果您对文本字段使用自定义输入视图,则iOS无法显示必要的自动填充UI。

Click here for more info by apple


0
投票

没有没有公共API。它由OS自动处理。您只需要将UITextField的输入视图的textContentType属性设置为oneTimeCode。

textField.textContentType = .oneTimeCode


0
投票

添加到其他答案后,在测试之后,文本消息似乎需要在号码之前包含“验证号码”或“代码”才能正常工作。

工作:

  • 验证号码1234
  • 验证码:1234
  • 验证码1234
  • 验证码:1234
  • 代码1234
  • 代码:1234

不工作:

  • 编号1234
  • 验证1234
  • 1234
© www.soinside.com 2019 - 2024. All rights reserved.