【未解決】Cordovaアプリでinput要素のタッチ感度が悪い

未解決ですが、とりあえず試したことをまとめ。
Cordova アプリに設置した input 要素をタッチした際、フォーカスが当たるまでにラグがある時に試したことについてです。
ちなみに発生するのは iOS のみで、Android では全く問題ありませんでした。

今回試したのが、fastclick の導入と、クリックイベントを使って要素に無理矢理フォーカスを当てる方法の 2点です。

 

まず 1つ目の fastclick の導入について。
GitHub のページはこちらです。

GitHub – ftlabs/fastclick: Polyfill to remove click delays on browsers with touch UIs
https://github.com/ftlabs/fastclick

<script> タグで、fastclick.js を読み込む方法もありましたが、私は npm でインストールしました。
コマンドは下記の通りです。

npm install fastclick

インストールに成功したら、任意の場所で下記を実行します。

const FastClick = require('fastclick');
FastClick.attach(document.body);

私は deviceready が呼び出された直後に実行するようにしました。

が、こちらを追加しても特に変化はなく…相変わらず、 input 要素をタップして一呼吸置いてからフォーカスが当たります。
このラグは何なんだ…。

 

次に、クリックイベントを使って無理矢理 input 要素にフォーカスを当てる方法です。
参考にさせていただいたサイトはこちら。

cordovaのiosでinputタグのタッチ反応が悪い時の解決策 – reon777のメモメモリー
https://reon777.com/2019/05/16/cordova-ios-input/

サンプルコードは下記の通りです。

<Input id="sample" onClick={() => document.getElementById("sample").focus()} />

ちなみに、React で書いています。
要素がクリックされたときに、自身にフォーカスが当たるようにしています。
ですが残念ながら、こちらも効果の程はよく分からず…。
 

そして、現在怪しいと思っているのが、Onsen UI です。
見た目がかなりおしゃれになっている分、動作が重いのかもしれないという短絡的な考えですが、とりあえず心当たりがあるところは片っ端から確認していこうと思います。
…Safari のバグでないことを祈っております…。

 

以上、Cordova アプリで input 要素のタッチ感度が悪いときに試した方法でした。
解決したら、また改めてまとめたいと思います。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG