¿Una aplicación web html5 para safari móvil para cargar imágenes desde Photos.app?


93

¿Es posible escribir una aplicación web HTML5 diseñada para los dispositivos iOS (iPad, iPhone, iPod Touch) que permita al usuario cargar una imagen desde el sistema de archivos?

Imagina subir una nueva foto a tu avatar de Twitter a través de una aplicación web.

Respuestas:


98

ACTUALIZACIÓN: iOs 6 Safari admitirá la carga de videos e imágenes desde la Biblioteca de fotos.

====

Odio esta palabra, pero es imposible (hasta ahora). Aquí están las razones:

1) el safari móvil no admite la carga de nada.

2) el safari móvil no puede acceder a los componentes de ios (en realidad puede hacerlo, pero solo a través de phonegap )


7
¡Tienes razón, es una palabra odiosa! Mi investigación había demostrado lo mismo y simplemente no podía vivir con eso, así que pregunté aquí en SO. Aunque gracias por la respuesta.
Abhic

2
Lo que no entiendo es por qué Apple no permitió que la carpeta de imágenes / videos estuviera expuesta en lugar de tener miedo de exponer todo el sistema.
Fasih.rana

1
¿Algún enlace a la documentación de iOS Safari para referirse a cómo lograr cargas de imágenes en iOS? ¡Gracias!
detj

¡Ah! Lo hace automáticamente. Sin problemas :)
detj

¿Puede publicar algún código para la carga de archivos en el navegador ios safari usando HTML 5?
Karthick

28

otra forma de abordar este problema sería dar a los usuarios una dirección de correo electrónico privada a la que puedan enviar sus fotos por correo electrónico para cargarlas automáticamente (por ejemplo, photos+abc123@yoursite.com).

Un poco más de trabajo para configurar, pero brindará una experiencia uniforme para los usuarios en todos los dispositivos (y los usuarios que no tienen dispositivos móviles también pueden encontrarlo conveniente).


Me pregunto cómo se puede hacer esto, quiero decir, el usuario envía un correo electrónico con un archivo adjunto, una foto o un video, ¿cómo puedo extraer esa información y guardarla en una base de datos y publicar la información relativa en el lugar correcto, las fotos en la carpeta de imágenes y videos a la carpeta de videos ... ya tiene que haber un script que pueda hacer eso ... o algo similar ..
Tanker

@Tanker sí, su aplicación tendría que recuperar los correos electrónicos periódicamente, tomar los archivos adjuntos y guardar los cambios. He usado las bibliotecas de correo electrónico de ChilKat para esto en el pasado, aunque le advertiré que no siempre se compila bien (para mí -ymmv) entre 32/64 bits.
brichins

9

Me gusta la solución de picup en http://picupapp.com


Hay un tutorial para eso . Un problema con Picup es que carga la imagen en un servidor de terceros (imgur.com), lo que puede crear muchos problemas de licencia / privacidad. Los términos de servicio de Imgur básicamente dicen que ellos son los dueños de la imagen y no puedes usarla con fines comerciales.
Ian Dunn

2
@Ian Dunn: Picup se puede configurar para cargar la imagen en cualquier URL que desee. Imgur es solo el predeterminado.
geon

8

Encontré una solución aceptable para esto. Agregue un enlace mailTo en la página con instrucciones predefinidas que muestre al usuario cómo copiar y pegar una imagen de su rollo de cámara en el correo electrónico. Luego, escriba un trabajo / script que escuche en esa bandeja de entrada los correos electrónicos entrantes, elimine la imagen y procese en consecuencia.

No es perfecto, pero hacen clic en el enlace de safari y luego solo necesitan ir a las fotos, copiar y volver a su aplicación. Después de probarlo en mi teléfono, es más que una solución aceptable que me permite seguir adelante sin escribir una aplicación.

    <div data-role="collapsible" data-collapsed="true" id="uploadPicContainer" data-theme="d">
    <h3>{l t='Upload Picture'}</h3>
    <a href="mailto:fotos@opina.com?subject={l t='My pictures of'} {$var_biz.bizname}[{$var_biz.id}]!&body={l t='To upload a picture go to your Camera Roll and copy paste an image to this area in the email.  We will apply your picture after review!'}">{l t='Click here to upload pictures of'} {$var_biz.bizname}</a>
</div>

Es más aceptable para usted porque conoce las limitaciones; tengo curiosidad por ver las respuestas de los no desarrolladores que responden a una aplicación como esta. Es una forma interesante de hacerlo y se basa en otro método con el que los usuarios ya están familiarizados; también podría funcionar para algo que estoy tratando de hacer.
Angelo R.

Sí. esa es una buena idea. Tiene que haber un script que analice los archivos adjuntos. Zend Framework tiene algunos buenos componentes para eso.
Svetoslav Marinov

6

Podrás subir fotos usando safari en iOS 6 en adelante. Aunque las soluciones anteriores seguirán siendo necesarias para iOS 5 y versiones posteriores.


2
¿Tiene alguna instrucción sobre cómo hacerlo en iOS 6?
Wim Deblauwe


2

Safari en iOS 6.0 es el primero en agregar soporte <input type="file">al permitirte:

  • tomar un nuevo video o foto
  • seleccione un video o una foto de la biblioteca

Así es como se ve en iOS10:

Entrada de archivo iOS 10 sin filtro

iOS9 presentó iCloud Drive y más opciones, incluido Dropbox . iOS 6 a 8 tenía solo las dos primeras opciones.

Puede limitar los tipos de archivos a solo fotos utilizando el accept="image/*"atributo:

<input type="file" accept="image/*" > limitará las opciones a solo fotos:

Entrada de archivos iOS 10 para fotos

En el lado de Android Android 2.2+ es el primero en admitir el código anterior.

Descargo de responsabilidad: imagen cortesía de Pipe que maneja la grabación de video donde soy CTO


1

Una idea que acabo de pensar es tener un cuadro de texto en el que el usuario pueda pegar una URL, lo que le permite usar Dropbox o una aplicación similar y copiar una URL pública del archivo de Dropbox. Entonces, el servidor podría descargar desde el servidor de Dropbox.

Necesito admitir tipos de archivo que no sean imágenes, por lo que parece que picupapp no ​​funcionará para mí.


0

Si todavía usa iOS5, considere usar iCab Mobile. Lo tengo para mi ipad y (al menos para mí) la carga de archivos funciona bien.

Saludos, Piotr


0

Solo para iOS> = 6

<input type="file" accept="image/*" capture>

"capturar" no cambia nada con iOS, pero sigue siendo útil para otros dispositivos (aparentemente Android, ver comentarios).


capture="camera"(cadena) ha sido reemplazado por capture="capture"en la Recomendación Candidata del W3C. En ambos casos solo funciona en Android.
Octavian Naicu

@OctavianNaicu tiene sentido. Edité la respuesta. Gracias por la información
Erdal G.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.