IPhone受信ボックス(SMS)からiOSアプリケーションにデータにアクセスして、Androidのような自動OTP検証を行う方法はありますか?あなたの助けに感謝します。
IOS 12では、AppleはSecurity Code AutoFill
。
これをアプリで使用するには、UITextField
の入力ビューのtextContentType
プロパティoneTimeCode
を設定するだけです。
otpTextField.textContentType = .oneTimeCode
[〜#〜] note [〜#〜]:セキュリティコードの自動入力はシステムキーボードでのみ動作し、カスタムキーボードでは動作しません。
OTPを取得すると、次のようになります。
[〜#〜] update [〜#〜]
IOS 12からAppleは、UITextField、UITextView、およびUITextInputプロトコルを採用するカスタムビューのパスワードオートフィルをサポートします。システムキーボードは、その上のtextContentTypeを設定します。 。oneTimeCode
1)コードの使用
singleFactorCodeTextField.textContentType = .oneTimeCode
2)Storyboard/XIBを使用する
storyboard/XIB
でUITextField
/UITextView
を選択し、[属性インスペクター]をクリックします。テキスト入力特性に移動し、コンテンツタイプをクリックして、1つのタイムコードを選択して完了します。
オペレーティングシステムは、このUITextContentType
が設定されたメッセージから検証コードを自動的に検出します。
警告
セキュリティコードの入力テキストフィールドにカスタム入力ビューを使用する場合、iOSは必要なオートフィルUIを表示できません。
詳細については、Apple developer oneTimeCode で確認できます。
また、 WWDC 2018 Session 204-Automatic Strong Passwords and Security Code AutoFill に移動し、24:28に自動で移動しますOTPを事前に入力します。
Xamarin iOSで、> = iOS 12の場合:
まず、SMSは、キーワード "code"または "passcode"をメッセージに含める必要があります。 コードの後にスペースを使用しないでください。SMSを受け取り、ボタンがある場合「コードのコピー」
次に、これを配置する必要があります。
_txtField = new UITextField()
{
UserInteractionEnabled = true,
};
if (UIDevice.CurrentDevice.CheckSystemVersion(12, 0))
{
_txtField.TextContentType = UITextContentType.OneTimeCode;
}
_txtFieldDelegate = new UITextFieldDelegate();
_txtField.Delegate = _txtFieldDelegate;
_txtField.BecomeFirstResponder();
注:セキュリティコードの自動入力は、システムキーボードでのみ機能します(カスタムではありません)。
メッセージからOTPを取得できます。
otptextField.textContentType = .oneTimeCode
彼のリンクからプロジェクトを入手してください。
また、受信するテキストメッセージに次のような「コード」が含まれていることも重要です。
「パスコードは:123456」
または
「12345はログインするコードです」
その線に沿って何か。
NOT!
あなたのアプリ:12345
メッセージ内の下線付きのコードをタップして、テキストメッセージ内のコードが.oneTimeCodeタイプで機能するかどうかを確認できます。 「コードのコピー」というダイアログがポップアップ表示されたら、準備ができています。それ以外の場合は、メッセージのテキストを変更する必要があります。