Cómo administrar la autenticación básica en WebView
He creado una aplicación que carga un WebView. Para iniciar sesión, el sitio web requiere autenticación básica. Cuando intento acceder al sitio web a través del navegador predeterminado, obtengo un cuadro emergente que me solicita que introduzca mi nombre de usuario y mi contraseña.
Si intento acceder al sitio web a través de mi aplicación, obtengo el error 401 y no aparece. Me preguntaba si alguien podría ayudarme?
- Android: comprueba mediante programación la conexión a Internet y muestra el diálogo si no está conectado
- Las imágenes no se cargan en la vista web de android
- Reproducción de video HTML5 en pantalla completa en la vista web de Android
- Acceso web automático de Webview de Android al sitio Web de https estableciendo cookies de token
- Desactivación nativa de WebView: libwebviewchromium.so "Operación no permitida" - ILL_ILLOPC
- Android: el método de WebView goBack () muestra una página en blanco
- Responder sitio web mostrar en la vista Web fuera de ancho móvil (no sensible) de otra manera en Chrome se ve bien
- Evento "reproducir video" en Android WebView
- Cómo saber cuando se ha terminado la renderización de WebView
- El WebView que se ejecuta en el emulador en Android Studio no puede acceder a Internet, pero Chrome puede?
- WebView no cambia de tamaño
- La sesión SSL no se reutiliza en Android WebView
- Abrir un menú de carga de archivos en una vista web no funciona
Considero una solución más elegante que la que describe Patrick sería usar el método onReceivedHttpAuthRequest de WebViewClient como se describe aquí: http://www.mail-archive.com/[email protected]/msg30468.html
@Override public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) { handler.proceed("username", "password"); }
El sitio web requiere autenticación.
Primero reaccionas al error:
webview.setWebViewClient(new WebViewClient() { public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { if (errorCode == 401) { // show alert to enter username and password // then when those are entered in the alert, // set it through the setHttpAuthUsernamePassword(...) shown below // and then reload the site } } });
Utilice esta función para configurar el usuario y la contraseña: WebView.setHttpAuthUsernamePassword()
webview.setHttpAuthUsernamePassword(host, realm, username, password);
Todos son cuerdas. Consulte el enlace anterior para obtener más información sobre lo que significa host y reino.
Solución encontrada aquí: ¿ Proporcionar algunas credenciales de autenticación básica a un WebView?
public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) { handler.proceed("USERNAME", "PASSWORD"); }
Creo que es útil sobre el error 401 en WebView.
- Reproducción de vídeos de youtube en la aplicación para Android
- Android – ¿Cómo eliminar la actividad de las aplicaciones recientes?