2015-10-26 2 views
1

Мне интересно, почему поведение камеры/выбранного файла отличается не только между браузерами (Chrome, Safari), но и между тем же браузером на разных платформах (Android Chrome против iPhone Chrome)?Тип ввода = «файл» сделать фото вариант

Modernizr.getusermedia возвращает true для Chrome на Android, но false для Chrome на iPhone.

Проблема: на iPhone Modernizr.getusermedia === false, но <input type="file" /> меню Chrome/Safari предложит мне сделать фото/видео.

Вопрос:Есть ли способ взять под контроль JavaScript такое поведение?

+3

Так же, как в стороне - хром на андроиде находится в _no_ way тем же браузером, что и хром на ios. вообще. Apple не разрешает сторонние веб-движки. В результате хром на ios - это всего лишь обертка вокруг веб-представления сафари. – Patrick

+0

@Patrick спасибо, хорошая точка –

ответ

3

Пробовал добавить capture атрибут input элемент?

<input type="file" accept="image/*;capture=camera"> 

См Polyfill file input with accept capture (using getUserMedia to capture?), Capturing Audio & Video in HTML5

+0

приятное предложение, попробуем его сегодня! –

+1

'accept =" image/*; capture = camera "' был заменен на 'accept =" image/* "capture' в [Рекомендации W3C] (https://www.w3.org/TR/2013/CR- HTML-медиа захвата-20130509 /). Используйте 'capture =" capture "' только в том случае, если вы хотите захватить непосредственно с камеры. Подробнее см. [Корректный синтаксис для захвата медиафайлов HTML] (https://addpipe.com/blog/correct-syntax-html-media-capture/). –

+0

@OctavianNaicu См. Также https://www.w3.org/2009/dap/wiki/ImplementationStatus, http://w3c.github.io/test-results/html-media-capture/all.html – guest271314

1

Я задаюсь вопросом, почему поведение камера/выбора-файл отличается от того же браузера на различных платформах (Android Chrome противов iPhone Chrome)?

Chrome on iOS is actually just a wrapper around Webkit, двигатель рендеринга Safari.

на iPhone Modernizr.getusermedia === false, но <input type="file" /> меню Chrome/Safari предложит мне сделать фото/видео.

Это два разных API. getUserMedia - это сложный JavaScript API, не реализованный Safari, а <input type="file" accept="image/*"/> - очень простой API HTML5.