(JS) Дляопределите, предлагает ли устройство или нет сделать снимок с камеры - PullRequest
1 голос
/ 11 октября 2019

При загрузке файла мне нужно дать пользователю возможность:

  • загрузить файл из файловой системы
  • захватить фотографию с камеры

Если просто использовать input type="file", такое поведение реализуется большинством пар браузер-устройство, но не всеми ними (подробности см. В этом ответе: https://stackoverflow.com/a/33414310). Те пары, которыене реализуйте захват фотографий, вероятно, только для компьютерных устройств, но я не уверен на 100% в этом (возможно, некоторые браузеры на компьютерных устройствах реализуют захват фотографий, возможно, некоторые браузеры на некомпьютерных устройствах этого не делают).


Чтобы восполнить этот недостаток на таких устройствах, я использую библиотеку, чтобы иметь:

  • one input type="file" для загрузки файла из файловой системы, + навернякаустройства: для записи файла с камеры
  • одна специальная кнопка, вызывающая библиотеку для захвата фотографии

Эта библиотека выполняет другие задачи и прекрасно интегрируется в мою систему загрузки. Также я использую еедолгое время Теперь, чтобы изменить это может привести к регрессии. В заключение: я бы предпочел сохранить его.

С другой стороны, для устройств, которые позволяют захватывать фотографии, эта библиотека выполняет меньше, чем захват фотографий с устройства. Например, он не предлагает возможность переключения между передней и задней камерами.


Поэтому для захвата фотографий мне нужно использовать эту библиотеку только для устройств, которые не поддерживаютзахват фотографии.

Другими словами: мне нужно определить, реализует ли устройство захват фотографий с помощью input type="file"


Iнашел много ответов, чтобы определить, является ли браузер мобильным или нет, но никто не удовлетворяет.

Самая интересная тема была: Как проверить, поддерживает ли браузер.

К сожалению, это решение не является идеальным: не потому, что свойство «захват» недоступно для элемента ввода, браузер и устройство не предоставляют возможность сделать снимок с помощьюэлемент ввода.

Это означает только то, что невозможно принудительно захватить фотографию с камеры вместо загрузки файла из файловой системы. Но это не значит, что захват с камеры невозможен. Однако, прочитав документацию, я обнаружил, что она тесно связана ...

... но после некоторых тестов я нашел контрпример: на планшете Samsung Firefox сообщает, что свойство capture не доступнодля ввода, но браузер все-таки предлагает сделать снимок через элемент ввода.


Любая помощь? :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...