Nella mia app Web (non app nativa) per dispositivi mobili, voglio scattare una foto e caricarla, ma non desidero utilizzare Adobe Flash. C'è un modo per fare questo?
Nella mia app Web (non app nativa) per dispositivi mobili, voglio scattare una foto e caricarla, ma non desidero utilizzare Adobe Flash. C'è un modo per fare questo?
Risposte:
In iPhone iOS6 e da Android ICS in poi, HTML5 ha il seguente tag che ti consente di scattare foto dal tuo dispositivo:
<input type="file" accept="image/*" capture="camera">
Capture
può assumere valori come fotocamera, videocamera e audio.
Penso che questo tag sicuramente non funzionerà in iOS5, non ne sono sicuro.
<input type="file" accept="image/*;capture=camera">
invece. Secondo MDN, non esiste alcun capture
attributo per un input
elemento.
capture="camera"
(String) che il precedente accept="image/*;capture=camera"
sono stati sostituiti nel 2012 con capture="capture"
(Boolean). L'attributo viene utilizzato per forzare l'acquisizione anziché selezionarla dalla libreria. Vedi le specifiche e la sintassi corretta per HTML Media Capture
Oggi almeno con Android è relativamente facile. Basta usare il normale tag di input del file e quando l'utente fa clic sul telefono il telefono chiederà se l'utente desidera utilizzare la fotocamera (o i file manager ecc.) Per caricare un file. Basta scattare una foto con la fotocamera e verrà automaticamente aggiunta e caricata.
Nessuna idea su iPhone. Forse qualcuno può illuminare su questo. EDIT: Iphone funziona in modo simile.
Esempio del tag di input:
<input type="file" accept="image/*" capture="camera">
multiple
funziona sia su Android che su iOS, vedi Sintassi corretta per HTML Media Capture
Solo per aggiornare questo, lo standard ora è:
<input type="file" name="image" accept="image/*" capture="environment">
per accedere alla telecamera (posteriore) rivolta verso l'ambiente e
<input type="file" name="image" accept="image/*" capture="user">
per fotocamera frontale (frontale). Per accedere al video, sostituire "video" con "immagine" nel nome.
Testato su iPhone 5c, con iOS 10.3.3, firmware 760, funziona bene.
Safari e Chrome su iOS 6+ e Android 2.2+ supportano HTML Media Capture che ti consente di scattare foto con la fotocamera del tuo dispositivo o selezionarne una esistente:
<input type="file" accept="image/*">
Ecco come funziona su iOS 10:
Android 3.0+ e Safari su iOS10.3 + supportano anche l' capture
attributo utilizzato per saltare direttamente alla videocamera.
<input type="file" accept="image/*" capture>
capture="camera"
(String) e accept="image/*;capture=camera"
(Parameter) facevano parte delle vecchie specifiche e sono stati sostituiti da capture
(Boolean) la W3C Candidate Advice.
Documentazione di supporto: questo libro O'Reilly del 2013 e i miei test
capture
invece di capture="camera"
. Curioso quale dispositivo e versione Android.
bene, c'è una nuova funzionalità HTML5 per accedere alla fotocamera del dispositivo nativo - "getUserMedia API"
NOTA: HTML5 è in grado di gestire l'acquisizione di foto da una pagina Web su dispositivi Android (almeno nelle ultime versioni, eseguite dal sistema operativo Honeycomb; ma non può gestirlo su iPhone ma iOS 6).
Puoi usare WEBRTC ma sfortunatamente non è supportato da tutti i browser web. QUI SOTTO È IL LINK PER MOSTRARE QUALE BROWSERS lo supporta http://caniuse.com/stream
E questo link ti dà un'idea di come puoi accedervi (codice di esempio). http://www.html5rocks.com/en/tutorials/getusermedia/intro/
getUserMedia
è eccessivo, <input type="file" accept="image/*">
farà il trucco.
SDK HTML5 di AppMobi una volta prometteva l'accesso alla funzionalità del dispositivo nativo, inclusa la fotocamera, da un'app basata su HTML5, ma non è più di proprietà di Google. Prova invece le risposte basate su HTML5 in questo post .
Ti consigliamo di utilizzare getUserMedia per accedere alla videocamera.
Questo tutorial illustra le basi dell'accesso a una fotocamera del dispositivo dal browser: https://medium.com/@aBenjamin765/make-a-camera-web-app-tutorial-part-1-ec284af8dddf
Nota: funziona sulla maggior parte dei dispositivi Android e solo su iOS in Safari.
Va notato che sono state implementate funzionalità di sicurezza che richiedono l'esecuzione dell'app localmente in localhost o tramite SSL per far funzionare GetUserMedia ().
L'ho scoperto quando ho provato diverse demo disponibili e sono rimasto deluso quando non hanno funzionato! Vedi: Nuove restrizioni di sicurezza
Non credo che tu possa - c'è una bozza API W3C per ottenere audio o video, ma non è ancora stata implementata su nessuno dei principali sistemi operativi mobili.
Secondo migliore L'unica opzione è seguire il suggerimento di Dennis di usare PhoneGap. Ciò significa che devi creare un'app nativa e aggiungerla all'app store / marketplace per dispositivi mobili.
Non conosco alcun modo per accedere alla fotocamera di un telefono cellulare dal browser Web senza alcun meccanismo aggiuntivo (ad esempio Flash o qualche tipo di contenitore che consente l'accesso all'API hardware)
Per quest'ultimo, dai un'occhiata a PhoneGap: http://docs.phonegap.com/phonegap_camera_camera.md.html
Con questo dovresti essere in grado di accedere alla videocamera almeno su dispositivi iOS e basati su Android.