web-dev-qa-db-ja.com

iOS 12 SMS APIの読み取り?

IOS 12のベータ版では、キーボードの提案でOTP(from SMS)が提供されることを確認しました。
では、開発者向けに作成したAPIはありますか?または、それは単にOSの機能です。

8
NITESH

これはOSの機能ですが、UITextFieldの入力ビューのtextContentTypeプロパティoneTimeCodeを設定する必要があります。

otpTextField.textContentType = .oneTimeCode

注:セキュリティコードの自動入力はシステムキーボードでのみ動作し、カスタムキーボードでは動作しません。

OTPを取得すると、次のようになります。

enter image description here

7
iVarun

残念ながら、メッセージ全体を読むことはできません。メッセージ内の確認コードしか読むことができません。

Swift:

@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).include文字

など:1 12 123a 9h7d 123456789 ...


その他:

セキュリティコードの自動入力はシステムキーボードでのみ動作します。カスタムキーボードでは動作しません。

3
刘俊利

APIはありませんが、textContentTypeUITextFieldプロパティの.oneTimeCodeとして設定する必要があります

otpTextField.textContentType = .oneTimeCode

もう一つ、

テキストフィールドにカスタム入力ビューを使用する場合、iOSは必要なオートフィルUIを表示できません。

Appleによる詳細情報はここをクリック

2
iParesh

「パスワードを自動入力する」キーボードオプションを電話でオンにする必要があるようだと言う価値があります。

0
AntDC

いいえ、パブリックAPIはありません。 OSによって自動的に処理されます。 UITextFieldの入力ビューのtextContentTypeプロパティをoneTimeCodeに設定するだけです。

textField.textContentType = .oneTimeCode

0
Viren Malhan

他の回答に加えて、テスト後、テキストメッセージには、番号の前に「検証番号」または「コード」を含める必要があるようです。

ワーキング:

  • 確認番号1234
  • 確認番号:1234
  • 確認コード1234
  • 確認コード:1234
  • コード1234
  • コード:1234

動作しない:

  • 番号1234
  • 検証1234
  • 1234
0
jonoljon