У своєму веб-додатку (не рідному додатку) для мобільних пристроїв я хочу сфотографувати та завантажити його, але я не хочу використовувати Adobe Flash. Чи можна це зробити?
У своєму веб-додатку (не рідному додатку) для мобільних пристроїв я хочу сфотографувати та завантажити його, але я не хочу використовувати Adobe Flash. Чи можна це зробити?
Відповіді:
В iPhone iOS6 та від Android ICS далі HTML5 має такий тег, який дозволяє робити фотографії зі свого пристрою:
<input type="file" accept="image/*" capture="camera">
Capture
може приймати такі значення, як камера, відеокамера та аудіо.
Я думаю, що цей тег точно не буде працювати в iOS5, не впевнений у цьому.
<input type="file" accept="image/*;capture=camera">
замість цього повинен бути код . Згідно з MDN, capture
атрибуту для input
елемента немає.
capture="camera"
(String), і старші accept="image/*;capture=camera"
були замінені в 2012 році на capture="capture"
(Boolean). Атрибут використовується для примусового захоплення замість вибору з бібліотеки. Дивіться специфікацію та правильний синтаксис для захоплення HTML-медіа
Сьогодні принаймні з андроїдом це досить просто. Просто використовуйте звичайний тег для введення файлів, і коли користувач натисне на нього, телефон запитає, чи хоче користувач використовувати камеру (або файлові менеджери тощо) для завантаження файлу. Просто сфотографуйте камеру, і вона автоматично додаватиметься та завантажуватись.
Поняття про iphone. Можливо, хтось може просвітити на цьому. EDIT: Iphone працює аналогічно.
Зразок вхідного тегу:
<input type="file" accept="image/*" capture="camera">
multiple
працює як на Android, так і на iOS, див. Правильний синтаксис для захоплення HTML Media
Просто для оновлення цього стандарту зараз є:
<input type="file" name="image" accept="image/*" capture="environment">
для доступу до зовнішньої (задньої) камери та
<input type="file" name="image" accept="image/*" capture="user">
для передньої (передньої) камери. Щоб отримати доступ до відео, замініть "video" на "image" на ім'я.
Тестований на iPhone 5c, на базі iOS 10.3.3, прошивки 760, працює чудово.
Safari та Chrome на iOS 6+ та Android 2.2+ підтримують HTML Media Capture, який дозволяє робити фотографії з камерою вашого пристрою або вибирати наявну:
<input type="file" accept="image/*">
Ось як це працює на iOS 10:
Android 3.0+ і Safari на iOS10.3 + також підтримують capture
атрибут, який використовується для переходу прямо до камери.
<input type="file" accept="image/*" capture>
capture="camera"
(String) і accept="image/*;capture=camera"
(Parameter) були частиною старих специфікацій і були замінені capture
(Boolean) Рекомендацією щодо кандидата W3C.
Допоміжна документація: ця книга 2013 року O'Reilly та моє тестування
capture
замість capture="camera"
. Цікаво, на якому пристрої та версії Android.
ну є нова функція HTML5 для доступу до камери рідного пристрою - "getUserMedia API"
ПРИМІТКА: HTML5 може працювати з захопленням фотографій із веб-сторінки на пристроях Android (принаймні, в останніх версіях, які працюють під керуванням ОС Honeycomb; але він не може обробляти їх на iPhone, але на iOS 6).
Ви можете використовувати WEBRTC, але, на жаль, він не підтримується всіма веб-браузерами. Внизу є ПОСИЛАННЯ, ЩО ВКАЗАТИ, ЯКІ БРОЗЕРИ підтримують його http://caniuse.com/stream
І це посилання дає вам уявлення про те, як ви можете отримати доступ до нього (зразок коду). http://www.html5rocks.com/en/tutorials/getusermedia/intro/
getUserMedia
надмірний, <input type="file" accept="image/*">
зробить трюк.
AppMobi HTML5 SDK колись обіцяв доступ до функціональних пристроїв, включаючи камеру, через додаток на базі HTML5, але більше не належить Google. Натомість спробуйте відповіді на основі HTML5 у цій публікації .
Вам потрібно скористатися getUserMedia для доступу до камери.
У цьому підручнику викладено основи доступу до камери пристрою з браузера: https://medium.com/@aBenjamin765/make-a-camera-web-app-tutorial-part-1-ec284af8dddf
Примітка. Це працює на більшості пристроїв Android і лише в iOS на Safari.
Слід зазначити, що були застосовані функції захисту, які вимагають роботи програми або локально під localhost, або через SSL для GetUserMedia ().
Я виявив це, коли спробував кілька доступних демонстрацій, і був розчарований, коли вони не працювали! Див.: Нові обмеження безпеки
Я не думаю, що ви можете це - є API проекту W3C для отримання аудіо чи відео, але ще немає реалізації на будь-якій з основних мобільних ОС.
Другий кращий Єдиний варіант - це пропозиція Денніса використовувати PhoneGap. Це означає, що вам потрібно створити нативну програму та додати її до магазину / ринку мобільних додатків.
Я не знаю жодного способу отримати доступ до камери мобільного телефону з веб-браузера без якогось додаткового механізму (наприклад, Flash або якогось типу контейнера, який дозволяє отримати доступ до апаратного API)
Для останніх ознайомтеся з PhoneGap: http://docs.phonegap.com/phonegap_camera_camera.md.html
Завдяки цьому ви зможете отримати доступ до камери принаймні на пристроях під керуванням iOS та Android.