Disabling autosuggestion on WebView?

前端 未结 8 986
盖世英雄少女心
盖世英雄少女心 2020-12-10 11:13

I have some HTML text inputs into a WebView, and I need to disable the autosuggetions on these inputs from Android, not from HTML (autocomplete=off).

How can I do th

相关标签:
8条回答
  • 2020-12-10 11:25

    The suggested above answers didn't help me. So I found next solution: I just created a simple wrapper for WebView and used it.

    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;
        }
    }
    
    0 讨论(0)
  • 2020-12-10 11:26

    None of the above helped so after extensive search i found this which works perfect on webview as well as normal websites. Text area can be replaced by Input text fields too :)

    <textarea class="form-control" id="comments" autocomplete="off" autocorrect="off"  spellcheck="false"></textarea>
    
    0 讨论(0)
  • 2020-12-10 11:26

    If it already has the form data then setSaveFormData(false) won't stop it from using it. To clear the database you may have to do the following:

    WebViewDatabase.getInstance(this).clearFormData();

    0 讨论(0)
  • 2020-12-10 11:32

    I couldn't do this from Android's side, however in adding to the webview's text input spellcheck="false" did the trick.

    <textarea spellcheck="false"></textarea>
    
    0 讨论(0)
  • 2020-12-10 11:35

    This problem vexed me for quite a while but the solution is very simple:

    webview.getSettings().setSaveFormData(false);
    

    I wrote about it here:

    http://roysutton.com/2012/02/21/preventing-auto-fill-in-android-webview/

    0 讨论(0)
  • 2020-12-10 11:37

    In Android 8 and above, you should set importance of a textview subclass for system auto-fill feature:

    android:importantForAutofill="noExcludeDescendants"
    

    Official reference: Optimize your app for autofill

    Furthermore, You might try to delete the "Web Data" sqlite file in data/data/{your-app-package}/app_webview when webview isn't in use for security's sake.

    0 讨论(0)
提交回复
热议问题