Ответ 1
Эта проблема довольно долго меня раздражала, но решение очень просто:
webview.getSettings().setSaveFormData(false);
Я написал об этом здесь:
http://roysutton.com/2012/02/21/preventing-auto-fill-in-android-webview/
У меня есть некоторые текстовые вложения HTML в WebView, и мне нужно отключить автообнаружения на этих входах от Android, а не из HTML (autocomplete = off).
Как я могу это сделать?
Эта проблема довольно долго меня раздражала, но решение очень просто:
webview.getSettings().setSaveFormData(false);
Я написал об этом здесь:
http://roysutton.com/2012/02/21/preventing-auto-fill-in-android-webview/
Предлагаемые выше ответы мне не помогли. Итак, я нашел следующее решение: я просто создал простую оболочку для WebView и использовал ее.
public class NoSuggestionsWebView extends WebView {
public NoSuggestionsWebView(Context context) {
super(context);
}
public NoSuggestionsWebView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public NoSuggestionsWebView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
InputConnection ic = super.onCreateInputConnection(outAttrs);
outAttrs.inputType &= ~EditorInfo.TYPE_MASK_VARIATION; /* clear VARIATION type to be able to set new value */
outAttrs.inputType |= InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD; /* WEB_PASSWORD type will prevent form suggestions */
return ic;
}
}
В дополнение к установке setSaveFormData как False, это также помогло мне
WebView.getSettings().setSavePassword(false);
WebView.clearFormData();
Я не мог сделать это со стороны Android, однако при добавлении к текстовому вводу текста spellcheck = "false" сделал трюк.
<textarea spellcheck="false"></textarea>
Если он уже имеет данные формы, то setSaveFormData(false)
не остановит его использование. Чтобы очистить базу данных, вам может потребоваться сделать следующее:
WebViewDatabase.getInstance(this).clearFormData();