web-dev-qa-db-ja.com

コルドバはiOSのclick()イベントに350msの遅延を追加します

$('button').click(function() { alert('hi'); }のようなものを使用し、<head>に以下を追加した場合:

<meta name="viewport" content="user-scalable=no, width=device-width">

..そしてiOS11で通常のモバイルサイトとして実行しますが、遅延はありません(=>予想される動作)。

ただし、コンパイルされたCordovaハイブリッドアプリでまったく同じコードを実行するとiOS、遅延が戻ってきます!! (=>良くない)

2013年のように、fastclick.jsまたはその他の回避策の使用を再開する必要がありますか?ここにいる他のCordova開発者はどうですか:同じ問題が発生しますか?

PS:Androidでは問題なく動作します。

PPS:CSSにtouch-action: manipulation;を追加しても、残念ながら役に立ちません。

8
Tonald Drump

Fastclickの問題については、明らかに、これはiOs11.3で導入された新しいバグです。

これが 完全な説明

そして、これが iOs11.3でのfastclickの問題 を解決するフォークです。

Fastclickはもう維持されていないように見えるので、回避策も探しています...

4
Romain Le Qllc

まったく同じ問題が発生します。

回避策としてFastClickを使用すると、最新のiOSリリースである11.3を除いて、ほとんどのiOSバージョンで機能します。 Cordovaアプリを新たに起動した後、FastClickは期待どおりに機能しますが、しばらくすると(特に、写真を撮るなどのネイティブiOS呼び出しを呼び出す場合)、入力フィールド(他のdivにネストされている)がまったく選択されないという奇妙な動作が表示されます入力フィールドを選択するには、複数回タップする必要があります。

350msの遅延が(Cordova)アプリでまだアクティブであり、Safariで開かれている標準のモバイルWebサイトではアクティブでない理由がわかりません。

Romain Le Qllc からのヒントのおかげで、fastclickを彼が言及したフォークに置き換えました( https://github.com/lasselaakkonen/fastclick )。これにより、iOS11.3と11.4の両方の問題が解決されます。

lasselaakkonen にも感謝します。

3
pj3s