¿El navegador web de Android permite subir fotos tomadas de la cámara?
Uno de los requisitos esenciales en la aplicación que estoy escribiendo es que el usuario sea capaz de cargar (entrada tipo = "archivo") una foto de dentro de un formulario.
¿El navegador web de Android admite cargas de archivos? Si sí, ¿todas las versiones 1.5+ lo admiten?
- ¿Cómo puedo iniciar una URL desde mi aplicación en Android?
- Experiencia nativa de Facebook en el navegador
- Navegador genera automáticamente un icono de lanzador en la pantalla de inicio para aplicaciones web android
- Cómo desarrollar complementos para el navegador nativo de Android
- Desarrollo de un monitor web en Android
- ¿Qué tan potentes son los navegadores móviles en comparación con los escritorios?
- Android - Añadir nueva pestaña cuando haga clic en botón como Google Chrome nuevo botón?
- Botón de exploración de imágenes en la actividad de Android
- ¿Cómo debo elegir un formato de video para reproducirlo en Web, Android e iOS?
- Geolocalización de HTML5 en el navegador de aplicaciones de Facebook: no se permite / bloquea la solicitud
- ¿Se puede depurar el javascript en el navegador nativo de una tableta Samsung?
- ¿Cómo abro el explorador de archivos? (SDK de Android)
- Ocultar la barra de direcciones del navegador móvil en cromo (android)
Si y no. Algunas personas parecen tener problemas para hacerlo (como se indica en los comentarios). Aunque funcionó para todos mis dispositivos, es completamente posible que un navegador diferente no implemente en absoluto esta característica .
Sin embargo, el usuario no puede cargar ningún archivo en la tarjeta SD, sino archivos de audio, vídeo e imagen que están en el almacenamiento interno / externo. El tipo de archivos que puede cargar depende de las aplicaciones instaladas. Si tiene un Administrador de archivos instalado (o enviado con el sistema operativo), también puede usarlo para cargar cualquier archivo que desee (Galería y Mediaplayer siempre deben estar presentes).
Cuando se pulsa el botón de subida de <input type="file">
, los navegadores parecen enviar el Intent.ACTION_GET_CONTENT
-Intent , por lo que cada aplicación que escuche este es un posible archivo-fuente.
Puede utilizar esto:
<input type="file" name="photo" accept="image/*" capture="camera">
Lo importante es
Captura = "cámara"
EDIT: según la última spec capture es un atributo booleano
El formato correcto para la entrada HTML de Device API es:
<input type="file" name="photo" accept="image/*;capture=camera"></input>
Esto es compatible con dispositivos con Android 3.0 (para tablets) o Android 4.0 y posteriores (para teléfonos). No tengo ni idea de qué versión de iOS empieza a apoyar esto.
Quería una manera más fácil de obtener archivos de mi teléfono en lugar de sacar la tarjeta SD y pensé que sólo tienen un programa CGI recibirlos en un servidor web por lo que tenía la misma pregunta. Escribí un pequeño script que puede cargar archivos desde computadoras remotas usando un navegador web. Se parece a esto:
#!/usr/bin/python import os import cgi def tag(tag, contents=None, attlist=None): tagstring= "<"+tag if attlist: for A in attlist: V= attlist[A].replace('"','"') attstring= ' '+A+'="'+V+'"' tagstring += attstring if contents: tagstring += ">\n"+contents.rstrip()+"\n</"+tag+">\n" else: tagstring += "/>\n" return tagstring content_type= 'Content-type: text/html\n\n' form = cgi.FieldStorage() if not form: acturl= "./up.py" ff= tag('input','',{'type':'file','name':'filename'}) + tag('input',''{'type':'submit'}) f= tag('form',ff, {'action':acturl, 'method':'POST', 'enctype':'multipart/form-data'}) H= tag('head', tag('title', "Uploader")) B= tag('body', tag('p', f)) print content_type + tag('html', H + B) elif form.has_key("filename"): item = form["filename"] if item.file: data = item.file.read() t= os.path.basename(item.filename) FILE= open("/home/user/public_html/uploads/"+t,'w') FILE.write(data) FILE.close msg= "Success! " else: msg= "Fail. " H= tag('head', tag('title', "Uploader")) B= tag('body', tag('p', msg + tag('a','Another?',{'href':'./up.py'}))) print content_type + tag('html', H + B)
Ejecutar una prueba con un programa como este es la única manera segura de saber si su marca de navegador de teléfono hace lo que quiere, pero para mí: funcionó. Incluso pude usar Apache mod_auth para requerir un nombre de usuario y una contraseña y el navegador de Android me permitió educadamente entrar en eso. Entonces cuando seleccioné el botón del archivo del elegir, trajo para arriba una oferta del menú que me dejó elegir de la galería, ap de la música, registrador sano, y un ap del encargado de archivo instalé. Escogí un archivo de la galería y, aunque tomó su tiempo dulce, subió muy bien. Así que la respuesta a la pregunta para mí fue "sí". Y para usted – pruebe un programa de prueba como el publicado.
Sí, desde Android 3.0 puede utilizar la cámara del dispositivo a través de Device API. Este fragmento se toma de allí
<form enctype="multipart/form-data" method="post"> <h2>Regular file upload</h2> <input type="file"></input> <h2>capture=camera</h2> <input type="file" accept="image/*;capture=camera"></input> <h2>capture=camcorder</h2> <input type="file" accept="video/*;capture=camcorder"></input> <h2>capture=microphone</h2> <input type="file" accept="audio/*;capture=microphone"></input> </form>
Esta fuente parece interesante cuando se trata de comprobar la compatibilidad con html5 en dispositivos móviles.
- Android: cómo animar una transición de actividad cuando se pulsa el botón de retroceso predeterminado
- Android 6: ¿ya no puede compartir archivos?