2011-09-13 52 views
14

Tôi có một số đầu vào văn bản HTML vào một WebView và tôi cần phải tắt tính năng tự động nhận trên các đầu vào này từ Android, không phải từ HTML (tự động hoàn thành = tắt).Tắt tự động đề xuất trên WebView?

Tôi làm cách nào để thực hiện việc này?

+0

đây là liên kết chính [http://stackoverflow.com/questions/582244/is-there-a-w3c- hợp lệ-cách-để-vô hiệu hóa-tự động điền-in-a-html-form] [1] [1]: http://stackoverflow.com/questions/582244/is-there-a-w3c -valid-way-to-disable-autocomplete-in-a-html-form –

Trả lời

3

Ngoài setSaveFormData thiết như False, này cũng đã giúp tôi

WebView.getSettings().setSavePassword(false); 
WebView.clearFormData(); 
0

Tôi không thể làm điều này từ phía Android, tuy nhiên khi thêm vào văn bản nhập liệu chính tả của webview spellcheck = "false" đã thực hiện thủ thuật.

<textarea spellcheck="false"></textarea> 
11

Câu trả lời được đề xuất ở trên không giúp ích gì cho tôi. Vì vậy, tôi đã tìm thấy giải pháp tiếp theo: Tôi vừa tạo một trình bao bọc đơn giản cho WebView và sử dụng nó.

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

Rực rỡ! Tôi đã gặp vấn đề tương tự trong ứng dụng của mình và sau khi áp dụng điều này, người dùng đã báo cáo sự cố đã được giải quyết. –

0

Nếu dữ liệu đã có dữ liệu biểu mẫu thì setSaveFormData(false) sẽ không ngừng sử dụng dữ liệu đó. Để xóa cơ sở dữ liệu bạn có thể phải làm như sau:

WebViewDatabase.getInstance(this).clearFormData();

Các vấn đề liên quan