[解決済み] capture属性とaccept属性を持つHTMLファイル入力コントロールの動作がおかしい?
質問
私の問題
次に、ユーザーは
input type=file
を取得する必要があります。
upload file + camera
のダイアログを表示します。私は、このhtml属性に
accept
と
capture
. しかし、最近のデバイスでは、これが起きないものもあります。以下に、コード例と、それが動作するかどうかの表があります。コード例は
Mobile Safari
と
Chrome
.
TL;DRです。
私は、5つのコード例で
input type file
:
1.(
jsfiddle
)
<input type="file" accept="image/*" capture>
2. (
jsfiddle
)
<input type="file" accept="image/*" capture="camera">
3. (
jsfiddle
)
<input type="file" capture="camera">
4. (
jsfiddle
)
<input type="file" capture>
5. (
jsfiddle
)
<input type="file" accept="image/*">
デバイスをテストします。
- Samsung S3 (アンドロイド 4.1.2)
- サムスン S3 (アンドロイド 4.3)
- サムスン ギャラクシー タブ 2 7.0 (アンドロイド 4.2.2)
- サムスン ノート (Android 4.1.2)
- iPhone 5 (iOS 7.0.4)
- Nexus 4 (Android 4.4)
結果の表です。
-
W(ork)-有効の意味
upload image dialog with camera
-
P(artially works) - 有効な手段
upload dialog(not image only) with camera
-
N(ot work) - 意味
only camera
使用可能 -
Ch - 意味
Chrome
-
MS - 意味
Mobile Safari
#
--------------------------------------------------------------------------------
|devices/example | Ch 1| Ch 2| Ch 3| Ch 4| Ch 5| MS 1| MS 2| MS 3| MS 4| MS 5|
--------------------------------------------------------------------------------
|Samsung S3/4.1 | N | N | P | P | W | W | N | P | P | W |
--------------------------------------------------------------------------------
|Samsung S3/4.3 | N | N | P | P | P | N | N | P | P | P |
--------------------------------------------------------------------------------
|Samsung Galaxy Tab| N | N | P | P | W | W | N | P | P | W |
--------------------------------------------------------------------------------
|Samsung Note | N | N | P | P | W | W | N | P | P | W |
--------------------------------------------------------------------------------
|iPhone 5 | W | W | P | P | W | W | Y | P | P | W |
--------------------------------------------------------------------------------
|Nexus 4 | N | N | P | P | W | - | - | - | - | - |
--------------------------------------------------------------------------------
見ての通り、私は
upload file + camera
ダイアログが表示されます。
<input type="file" accept="image/*">
だけです。しかし、そこには
capture
属性がないので、Android 4.3では問題があるようです。
質問です。
- テーブルの動作は本当ですか?Android 4.3 の動作はバグですか?
- キャプチャ属性なしでアップロードダイアログに常にカメラを追加するブラウザを信頼できますか? ダイアログにカメラを追加します。(答えのための証拠のリンクを追加してください)
ありがとうございます。
P.S. 質問は特別ですが、私のサイトでは、ユーザーが画像やカメラにアクセスできるようにする必要があります。また、私は私のテーブルが誰にとっても役に立つと思いますし、また、私は答えを検索し、誰も答えていない場合は、ここに私の答えを投稿します。
どのように解決するには?
これは実際の答えです。次のユーザーのためにここに投稿してください。
実際のところ、現在の実装では capture 属性にはまったく依存せず、type 属性と accept 属性にのみ依存しているようです。 ブラウザはダイアログ ボックスを表示し、ユーザーはファイルを取得する場所を選択することができます。 を選択するダイアログボックスを表示し、そのダイアログボックスで
capture
属性は考慮されません。 は考慮されません。たとえば、iOS の Safari は、画像や動画(音声は不可)に対して、accept 属性(キャプチャではありません)を画像や動画(音声ではありません)に対して使用します。たとえ を使用しない場合でもaccept
属性を使用しない場合でも、ブラウザは と「既存のものを選択する」のどちらかを選択します(この点を指摘してくれた@firtさんに感謝します)。 に感謝します)。
から この
2016年2月17日編集しました。 この動作は、デバイス上でまだ有効です。
関連
-
[解決済み] Androidでファイルをダウンロードし、ProgressDialogで進捗を表示する。
-
[解決済み] HTMLのid属性とname属性の違い
-
[解決済み] HTML Input="file" Accept Attribute File Type (CSV)
-
[解決済み] <input type="file"> に画像ファイルしか受け付けないようにするには?
-
[解決済み] Android ConstraintLayout - あるビューを別のビューの上に配置する
-
[解決済み] EclipseのAndroidプロジェクトにライブラリ/JARを追加する
-
[解決済み] データベースでリサイクルビューを使用する
-
[解決済み] BottomNavigationViewを新しいNavControllerで使用する際に、フラグメントを生かす方法はありますか?
-
[解決済み] Android: xml リソースからの整数値
-
[解決済み] フォーム入力でカメラにアクセスし、Webアプリで写真を即座にアップロードする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 深くネストされたスタックから離れるとき、Fragmentのバックスタックをクリーンアップする方法はこれで良いのでしょうか?
-
[解決済み] getApplication()、getApplicationContext()、getBaseContext()、someClass.thisの違いと使い分け。
-
[解決済み] 「KotlinとAndroidで「パラメータTを推測するのに十分な情報がありません。
-
[解決済み] ViewPagerのアイテムを強制的に再インスタンス化する方法 [重複].
-
[解決済み] これはどういうことですか?失敗 [INSTALL_FAILED_CONTAINER_ERROR]?
-
[解決済み] Android StudioからADBを手動で再起動する方法
-
[解決済み] EditTextをReadOnlyにする
-
[解決済み] PendingIntentの "requestCode "は何に使うのですか?
-
[解決済み] proguard hell - 参照されているクラスが見つかりません。
-
[解決済み] Recyclerviewと異なるタイプの行のインフレーションの処理