2

私は、iframe を使用して既にモバイル フレンドリーな Web アプリを埋め込む phonegap アプリに取り組んでいます。webapp には、仮想キーボードを表示するテキスト フィールドにフォーカスする検索機能があります。これまでのところ、すべてが順調です...

ただし、ドキュメント (iframe 内のもの) に touchstart リスナーを登録するライブラリを使用しています。そのため、仮想キーボードが表示されている間にユーザーがドキュメントに触れると、キーボードは機能しなくなります。

ipad (または XCode の ipad シミュレーター... 7.0.3 でテスト済み) から、ここに移動して指示に従ってください: https://s3.amazonaws.com/ypassets-andy/app-frame.html

興味深いのは、iframe でラップしないとキーボードが壊れないことです。https://s3.amazonaws.com/ypassets-andy/app.htmlにアクセスし、指示に従って壊れないようにしてください。

私はこれについて頭を悩ませてきましたが、これを機能させる方法がわかりません。参考までに、これらのスタック交換の投稿は関連しているように見えますが、問題を解決できませんでした:

アイデアをありがとう!

アンディ

4

1 に答える 1

2

これは、ファイルされていない iOS のバグのようです。唯一の修正は、入力を iframe からメイン ドキュメントに移動することです。

より長い話:

Andy はこれを解決しようとしましたが、最終的に失敗しました (モーダルのログイン/設定ダイアログ用でした)。それが分からなかったので死にかけましたが、禅の良い練習になるかもしれません。これが私たちが排除/試したことです:

  • iframe がフォーカスされていない/別のドキュメントにフォーカスしている
  • フォーカスを設定する前にすべてを完全にぼかす
  • focus の代わりに setRange など
  • touchstart スタック内の handbuild および fire イベント
  • イベントが複数回発生するかどうかを確認する
  • user-select や touch-callout などの CSS プロパティが違いを生むかどうかを確認します

その最終的な仮定は、iOS 7 でいくつかの更新を取得した Webkit の「入力をビューにスクロールする」ロジックに何らかの形で関連しているということでした。

于 2014-06-14T10:20:05.340 に答える