LoginSignup
5
3

More than 1 year has passed since last update.

【Flutter】Androidの感覚で実装してiOSで起こした不具合

Posted at

不具合発覚

iOSの端末で名前が入力できないとの問い合わせから判明しました。

調査

以前、showCupertinoModalPopup を使った際に、Focus と Cursor の挙動がおかしくなったことがあったので似たような問題かな?と思ったが違いました。

連絡をくれた方とやり取りすると、日本語が入力できないとのことだったのでキーボードの設定周りを中心に調査するようにしました。

原因

以下の条件で再現することがわかりました。

  • キーボードを絵文字と Gboard のような他社製キーボードのみにしている
  • TextField の inputTypeTextInputType.name を設定している

TextInputType.name を指定すると、iOS では keyboardTypenamePhonePad が設定されるのですが、他社製キーボードのみにしていると、該当のキーボードがないため日本語を入力するキーボードが選択できないため入力できなくなってしまっていました。

対応

inputType を TextInputType.name -> TextInputType.text に変更し、
連絡をくれた方には暫定的に標準のキーボードを一時的に追加してもらいました。

雑感

正直、iOS のバグじゃね?ってなりました。
Android の開発の際は android:inputType は意識的に設定するようにしてたので
TextInputType.name が原因で不具合になるとは思ってもいなかったわけです。

調べてみると、iOS のキーボードタイプに関するバグの記事は結構見つかります。

iOS を開発している人に聞いてみても、
email しか設定しない」
「ほぼ設定しない。email と numberPad は使うけど numPad も微妙に使えない。。。」
というような回答が。

確かに、TextInputType.number を指定した際、iOS では次へとかのアクションボタンが表示できなくて、色々実装したな。。。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3