我想知道如何防止 Android WebView 表单要求从 html 表单中保存“密码数据”?
你能帮我解决这个问题吗?
我想知道如何防止 Android WebView 表单要求从 html 表单中保存“密码数据”?
你能帮我解决这个问题吗?
试试这个:
.getSettings()
使用并设置此方法获取 webview 设置setSavePassword(false)
public void setSavePassword (boolean save)
http://developer.android.com/reference/android/webkit/WebSettings.html#setSaveFormData(boolean)
对于那些使用 API 级别 18 的人,请参阅下面的 Kirk Hammet 的回答。
@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"
}
这是像我这样需要看到它的人的代码片段,因为它应该输入
WebView webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setSavePassword(false);
它并没有你想象的那么贬值,我不得不删除版本检查,因为我在华为 5.01 设备上收到提示并禁用 FormData ......
webview.getSettings().setSavePassword(false);
webview.getSettings().setSaveFormData(false);
我具备以上所有条件,并在运行高于 18 的华为 Ascend P7 上使用了该应用程序。但由于某种原因,我仍然看到一个确认框,上面写着“你想让浏览器记住这个密码吗?”
这个弹出窗口的原因可能是什么。我试过下面的代码。
_viewSettings.setSavePassword(false);
if (Build.VERSION.SDK_INT <= 18) {
_viewSettings.setSavePassword(false);
}
_view.loadUrl(url);
注意:以上内容不会在三星设备上显示任何保存消息。
如果它在 WebView 中......只需将 autocomplete="off" 属性添加到表单中?