Моя проблема:
Затем пользователь нажимает кнопку input type=file
, чтобы получить диалог upload file + camera
. Я использую для этого html-атрибуты accept
и capture
. Но на некоторых современных устройствах этого не происходит. Ниже приведены примеры кода и таблица, какая из них работает или нет. Примеры кода тестируются в Mobile Safari
и Chrome
.
TL; ДР:
У меня есть 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 (Android 4.1.2)
- Samsung S3 (Android 4.3)
- Samsung Galaxy Tab 2 7.0 (Android 4.2.2)
- Samsung Note (Android 4.1.2)
- iPhone 5 (iOS 7.0.4)
- Nexus 4 (Android 4.4)
Таблица результатов:
- W (ork) - означает включенность
upload image dialog with camera
- P (искусственно работает) - означает включено
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. Вопрос особенный, но на моем сайте я должен предоставить пользователям доступ к своим изображениям и камере. Также я думаю, что мой стол может быть полезен для всех, а также я буду искать ответ и отправлю свой ответ здесь, если никто не ответит.