Problema con el stock El navegador escoge las fotos de la Galería
Estoy trabajando en una página web para cargar fotos desde un dispositivo móvil, usando la etiqueta <input type="file" accept="image/*"/>
. Esto funciona maravillosamente en el iphone y en el cromo en el androide, pero donde estamos corriendo en problemas es con el navegador androide de acciones.
El problema surge cuando seleccionas un archivo de tu galería (funciona bien cuando usas la cámara para tomar una foto). Y lo hemos reducido aún más para ver que el tipo MIME de datos no está disponible cuando se toma de la galería en el navegador de stock (las fotos a continuación muestran los primeros 100 caracteres de la URL de datos que se está cargando. , Pero sin el tipo MIME no podemos saber con certeza cómo solucionarlo. Vea el código a continuación para ver cómo se procesan las imágenes.
- No se puede hacer que HTML5 Audio Tag funcione en navegadores móviles
- Detectar si actualmente se desplaza una página web en Android
- Los oyentes de eventos window.open que no funcionan en Android 4.4.2
- Detectar navegador de aplicaciones (WebView) con PHP / Javascript
- ¿Soporta Android WebKit postMessage () para la comunicación inter-marco?
¿Cómo se puede renderizar una imagen sin el tipo? Mejor aún, ¿alguien sabe por qué el tipo no está disponible en el navegador android de acciones?
EDITAR
En primer lugar, estos no son la misma imagen, se tomaron casi al mismo tiempo, y ese no es el problema, por eso los datos son diferentes (El tipo MIME no aparece en ninguna imagen en el navegador de valores, por lo que no es el problema .
Actualizar
Confirmé que el tipo MIME es el problema insertando image / jpeg en el navegador de valores donde está en cromo. Por desgracia, no tenemos forma de garantizar que va a ser jpeg, por lo que de nuevo realmente no puede hacerlo de esa manera
_readInputFile: function (file, index) { var w = this, o = this.options; try { var fileReader = new FileReader(); fileReader.onerror = function (event) { alert(w._translate("There was a problem opening the selected file. For mobile devices, some files created by third-party applications (those that did not ship with the device) may not be standard and cannot be used.")) $('#loadingDots').remove(); return false; } fileReader.onload = function (event) { var data = event.target.result; //alert(data.substring(0,100)); //var mimeType = data.split(":")[1].split(";")[0]; alert("Load Image"); //I get to this point $('#' + w.disp.idPrefix + 'hiddenImages').append($('<img />', { src: data, id: "dummyImg" + index, load: function(){ var width = dummy.width(); var height = dummy.height(); $('#dummyImg' + index).remove(); alert("Render"); // I don't get here var resized = w._resizeAndRenderImage(data, null, null, biOSBugFixRequired, skewRatio, width, height); alert("Image Rendered"); // I don't get here } })); } fileReader.readAsDataURL(file); } catch (e) { } }
Cromo
Navegador de Stock
- La función Javascript no se llama en la vista web de android
- Cómo reproducir una notificación de sonido con Chrome para Android con Javascript?
- Los nuevos dispositivos de Samsung no pueden mostrar páginas web en su aplicación de SMS integrada
- Android 2.2 Web View Windows se mueve hacia arriba cuando aparece Virtual Keyboard
- ¿Cómo cambiar el contenido de EditText con Javascript?
- Obtener el ancho de ventana correcto después del cambio de tamaño o el evento orientationchange para Android
- Superposición azul de OnClick
- Desplazamiento automático hacia la vista de la entrada de enfoque
Dado que el problema está probablemente relacionado con el navegador, y realmente no se puede arreglar el navegador (podría informar un error a Google), sugeriría tomar un camino diferente.
Echa un vistazo aquí: En Node.js, dado un URL, ¿cómo puedo comprobar si es un jpg / png / gif?
Ver los comentarios de la respuesta aceptada, que sugiere un método para comprobar el tipo de archivo utilizando el flujo de archivos. Estoy bastante seguro de que esto funcionaría en JavaScript implementado por el navegador y no sólo en Node.js.