26

我想知道如何防止 Android WebView 表单要求从 html 表单中保存“密码数据”?

你能帮我解决这个问题吗?

4

6 回答 6

40

试试这个:

.getSettings()使用并设置此方法获取 webview 设置setSavePassword(false)

public void setSavePassword (boolean save)

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

对于那些使用 API 级别 18 的人,请参阅下面的 Kirk Hammet 的回答。

于 2012-07-17T22:54:16.450 回答
24

@Nikola Despotoski 的答案在他发布答案时是正确的,但是自 API 18 以来,此方法已被弃用,并且根据文档

未来版本将不支持在 WebView 中保存密码

这意味着默认情况下在 android 4.4 及更高版本中 - 默认为“false”,并且此方法将不再存在。

如果你想确保你兼容所有不同的 API 级别,你应该写:

  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"
    }
于 2013-10-14T13:56:37.160 回答
2

这是像我这样需要看到它的人的代码片段,因为它应该输入

    WebView webView = (WebView) findViewById(R.id.webView);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setSavePassword(false);
于 2013-09-10T23:22:44.563 回答
1

它并没有你想象的那么贬值,我不得不删除版本检查,因为我在华为 5.01 设备上收到提示并禁用 FormData ......

    webview.getSettings().setSavePassword(false);
    webview.getSettings().setSaveFormData(false);
于 2015-08-20T17:06:53.983 回答
0

我具备以上所有条件,并在运行高于 18 的华为 Ascend P7 上使用了该应用程序。但由于某种原因,我仍然看到一个确认框,上面写着“你想让浏览器记住这个密码吗?”

这个弹出窗口的原因可能是什么。我试过下面的代码。

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

注意:以上内容不会在三星设备上显示任何保存消息。

于 2014-12-21T09:05:56.860 回答
0

如果它在 WebView 中......只需将 autocomplete="off" 属性添加到表单中?

于 2015-03-26T16:21:19.937 回答