は、私が使用していますは、Android/iOSのネイティブアプリであることをコルドバで包まれたウェブアプリを構築するために反応します。私は、具体的.click()
- コルドバ
でファイル入力のクリックをシミュレートすることで、私はこのライブラリを使用しています、特にiOS版とのトラブルを抱えています:ここでhttps://github.com/odysseyscience/react-s3-uploader
は私のコードは、非常に簡単です:
<button onClick={(e) => { e.preventDefault() $('#fileinput').click() }} className='btn btn--no-bg btn--w-icon uploader'>
IDがfileinput
の要素は、反応アップローダのレンダリング版ですが、普通のHTML形式で表示されます。
<input type="file" id="fileinput" class="hidden react-s3" accept="image/*">
私はテストの束を行っていると問題が.click()
jqueryのイベントで発生しています。最初のonClick
が確実に起動されていますが、$('#fileinput').click()
が呼び出されると何も起こりません(iOSの場合)。
このコード部分は、Webブラウザと私のアンドロイドシミュレータで動作しますが、もう一度ではありません。私のiOSシミュレータではではありません。
私はすべての3つの環境(デスクトップ、iOSの、アンドロイド)用コンソールに移動し、コンソールのコード$('#fileinput').click()
を実行し、入力をクリックすると、写真の選択はアンドロイドとデスクトップ用トリガされますが、上の何もしませんiOS。
アイブ氏は、研究の束を行って、私はいけない仕事を見つけ、いくつかの解決策は以下のとおりです、ボタンや入力のいずれかにpointer: cursor
を追加a
タグにbutton
を変更し、隠し入力にvisibility: hidden
へdisplay:none
を変更し、しよう私は見つけることができる.click()
のすべての異なるバージョン(vanillaJS、.trigger
、.touchstart
、.touchend
、.live
など)
の隠し要素のクリックを誘発することができるとは思わない
').get(0).click()。 jQueryの代わりに、基本的なjs clickメソッドを使用してみてください。 – gaetanoM