Tengo una aplicación web simple, que se ejecuta en WebView, por lo que la aplicación de Android completa es solo una WebView y una URL configurada en mi página. En la aplicación web, tengo un botón en el que el usuario hace clic para tomar una foto de la cámara antes de continuar con otra parte de la aplicación. Todo esto funciona bien en el navegador normal del teléfono. Sin embargo, en WebView no funciona.
En la página HTML hay un campo de entrada de archivo, que está oculto:
<input type="file" name="fileToUpload" id="fileToUpload" onchange="receiveAShot();" accept="image/*" capture="camera" style="display:none;" />y el botón que está realizando la acción:
$(document).on("click", "#buttonId", function () { $("#fileToUpload").click(); })y esto funciona a las mil maravillas en los navegadores web de los teléfonos (comprobado Chrome y Firefox).
He establecido permisos para la aplicación de Android para
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.CAMERA" />y para WebView en la actividad principal:
WebView webView=findViewById(R.id.webview); WebSettings settings = webView.getSettings(); settings.setAllowFileAccess(true); settings.setAllowContentAccess(true); settings.setJavaScriptEnabled(true); webView.setWebViewClient(new WebViewClient()); webView.loadUrl("http://some.url.com");Estoy seguro de que javascript funciona regularmente, ya que pude iniciar sesión (no en forma clásica, solo solicitud de ajax). Pero cuando hago clic en el botón para comenzar a capturar la imagen, no sucede nada. ¿Alguna idea?