In meiner Web-App (keine native App) für Handys möchte ich ein Foto aufnehmen und hochladen, aber ich möchte Adobe Flash nicht verwenden. Gibt es eine Möglichkeit, dies zu tun?
In meiner Web-App (keine native App) für Handys möchte ich ein Foto aufnehmen und hochladen, aber ich möchte Adobe Flash nicht verwenden. Gibt es eine Möglichkeit, dies zu tun?
Antworten:
In iPhone iOS6 und ab Android ICS verfügt HTML5 über das folgende Tag, mit dem Sie Bilder von Ihrem Gerät aufnehmen können:
<input type="file" accept="image/*" capture="camera">
Capture
kann Werte wie Kamera, Camcorder und Audio annehmen.
Ich denke, dieses Tag wird definitiv nicht in iOS5 funktionieren, nicht sicher.
<input type="file" accept="image/*;capture=camera">
stattdessen sein. Laut MDN gibt es kein capture
Attribut für ein input
Element.
capture="camera"
(String) als auch die älteren accept="image/*;capture=camera"
wurden 2012 durch capture="capture"
(Boolean) ersetzt. Das Attribut wird verwendet, um die Erfassung zu erzwingen, anstatt aus der Bibliothek auszuwählen. Siehe die Spezifikation und die korrekte Syntax für HTML Media Capture
Heutzutage ist es zumindest mit Android relativ einfach. Verwenden Sie einfach das normale Dateieingabetag. Wenn der Benutzer darauf klickt, fragt das Telefon, ob der Benutzer eine Kamera (oder Dateimanager usw.) zum Hochladen einer Datei verwenden möchte. Nehmen Sie einfach ein Foto mit der Kamera auf und es wird automatisch hinzugefügt und hochgeladen.
Keine Ahnung von iPhone. Vielleicht kann jemand darüber aufklären. EDIT: Iphone funktioniert ähnlich.
Beispiel für das Eingabe-Tag:
<input type="file" accept="image/*" capture="camera">
multiple
funktioniert sowohl unter Android als auch unter iOS, siehe Richtige Syntax für HTML Media Capture
Um dies zu aktualisieren, lautet der Standard jetzt:
<input type="file" name="image" accept="image/*" capture="environment">
um auf die nach hinten gerichtete Kamera zuzugreifen, und
<input type="file" name="image" accept="image/*" capture="user">
für benutzerbezogene (Front-) Kamera. Um auf Video zuzugreifen, ersetzen Sie "Bild" im Namen durch "Video".
Getestet auf dem iPhone 5c unter iOS 10.3.3, Firmware 760, funktioniert einwandfrei.
Safari & Chrome unter iOS 6+ und Android 2.2+ unterstützen HTML Media Capture, mit dem Sie Bilder mit der Kamera Ihres Geräts aufnehmen oder eine vorhandene auswählen können:
<input type="file" accept="image/*">
So funktioniert es unter iOS 10:
Android 3.0+ und Safari unter iOS 10.3 + unterstützen auch das capture
Attribut, mit dem direkt zur Kamera gesprungen wird.
<input type="file" accept="image/*" capture>
capture="camera"
(String) und accept="image/*;capture=camera"
(Parameter) waren Teil alter Spezifikationen und wurden durch ersetztcapture
(Boolean) die W3C-Kandidatenempfehlung ersetzt.
Support-Dokumentation: Dieses O'Reilly-Buch 2013 und meine Tests
capture
statt capture="camera"
. Neugierig welches Gerät & Android Version.
Nun, es gibt eine neue HTML5-Funktion für den Zugriff auf die native Gerätekamera - "getUserMedia API".
HINWEIS: HTML5 kann die Fotoaufnahme von einer Webseite auf Android-Geräten verarbeiten (zumindest in den neuesten Versionen, die vom Honeycomb-Betriebssystem ausgeführt werden; auf iPhones außer iOS 6 jedoch nicht).
Sie können WEBRTC verwenden, aber leider wird es nicht von allen Webbrowsern unterstützt. UNTEN IST DER LINK, DER ZEIGT, WAS BROWSERS unterstützt http://caniuse.com/stream
Über diesen Link erhalten Sie eine Vorstellung davon, wie Sie darauf zugreifen können (Beispielcode). http://www.html5rocks.com/de/tutorials/getusermedia/intro/
getUserMedia
ist übertrieben, <input type="file" accept="image/*">
wird den Trick machen.
Das AppMobi HTML5 SDK versprach einmal den Zugriff auf native Gerätefunktionen - einschließlich der Kamera - über eine HTML5-basierte App, ist jedoch nicht mehr im Besitz von Google. Versuchen Sie stattdessen die HTML5-basierten Antworten in diesem Beitrag .
Sie möchten getUserMedia verwenden, um auf die Kamera zuzugreifen.
Dieses Tutorial beschreibt die Grundlagen des Zugriffs auf eine Gerätekamera über den Browser: https://medium.com/@aBenjamin765/make-a-camera-web-app-tutorial-part-1-ec284af8dddf
Hinweis: Dies funktioniert auf den meisten Android-Geräten und unter iOS nur in Safari.
Es ist zu beachten, dass Sicherheitsfunktionen implementiert wurden, bei denen die App entweder lokal unter localhost oder über SSL ausgeführt werden muss, damit GetUserMedia () funktioniert.
Ich habe dies entdeckt, als ich einige der verfügbaren Demos ausprobiert habe, und war enttäuscht, als sie nicht funktionierten! Siehe: Neue Sicherheitsbeschränkungen
Ich glaube nicht, dass Sie das können - es gibt einen W3C-API-Entwurf , um Audio oder Video abzurufen, aber es gibt noch keine Implementierung auf einem der großen mobilen Betriebssysteme.
Zweitbeste Die einzige Möglichkeit besteht darin, Dennis 'Vorschlag zu folgen, PhoneGap zu verwenden. Dies bedeutet, dass Sie eine native App erstellen und zum mobilen App Store / Marktplatz hinzufügen müssen.
Ich kenne keine Möglichkeit, über den Webbrowser über einen Webbrowser auf die Kamera eines Mobiltelefons zuzugreifen (z. B. Flash oder eine Art Container, der den Zugriff auf die Hardware-API ermöglicht).
Für letztere schauen Sie sich PhoneGap an: http://docs.phonegap.com/phonegap_camera_camera.md.html
Damit sollten Sie zumindest auf iOS- und Android-basierten Geräten auf die Kamera zugreifen können.