¿Cómo deshabilitar el diálogo "guardar contraseña" en un Android WebView?


Me gustaría saber cómo evitar que un formulario WebView de Android pida guardar los "datos de contraseña" de un formulario html?

¿Puedes ayudarme en esto?

Author: Pablo Claus, 2012-07-18

6 answers

Prueba esto:

Obtenga la configuración de webview con .getSettings() y establezca este método setSavePassword(false)

public void setSavePassword (boolean save)

Http://developer.android.com/reference/android/webkit/WebSettings.html#setSaveFormData(boolean)

Para aquellos que usan el nivel de API 18, consulte la respuesta de Kirk Hammet a continuación.

 40
Author: Nikola Despotoski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-12-05 16:11:04

@Nikola Despotoski la respuesta era correcta en el momento en que publicó la respuesta, pero este método está obsoleto desde API 18, y de acuerdo con la documentación :

Guardar contraseñas en WebView no será compatible en futuras versiones

Esto significa que, de forma predeterminada, en Android 4.4 y versiones posteriores, el valor predeterminado sería "false", y este método ya no existiría.

Si desea asegurarse de que es compatible con todos los diferentes niveles de API, usted debe escribir:

  if (Build.VERSION.SDK_INT <= 18) {
        mWebView.getSettings().setSavePassword(false);
    } else {
        // do nothing. because as google mentioned in the documentation -
        // "Saving passwords in WebView will not be supported in future versions"
    }
 24
Author: Tal Kanel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-14 13:56:37

Aquí hay un fragmento de código para aquellos como yo que necesitan verlo como debe ingresarse

    WebView webView = (WebView) findViewById(R.id.webView);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setSavePassword(false);
 2
Author: timv,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-10 23:22:44

Tengo todo lo anterior y he utilizado la aplicación en mi Huawei Ascend P7, que se está ejecutando más de 18. Pero por alguna razón todavía veo un cuadro de confirmación que dice " ¿Quieres que el navegador recuerde esta contraseña?"

Cuáles podrían ser las razones de esta ventana emergente. He probado el siguiente código.

_viewSettings.setSavePassword(false);  
if (Build.VERSION.SDK_INT <= 18) {  
    _viewSettings.setSavePassword(false);  
}  
_view.loadUrl(url);

Nota: Lo anterior no muestra ningún mensaje de guardado en dispositivos Samsung.

 0
Author: Hitin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-21 09:05:56

Si está en una vista WEB... simplemente agregue el atributo autocomplete="off" al formulario?

 0
Author: AdamJeffers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-26 16:21:19

No es tan depreciado como se podría pensar, tuve que eliminar la comprobación de la versión ya que estaba recibiendo el mensaje en un dispositivo Huawei 5.01 y desactivar FormData también...

    webview.getSettings().setSavePassword(false);
    webview.getSettings().setSaveFormData(false);
 0
Author: Kenny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-20 17:06:53