[英]Disable autocomplete in UIWebView/WKWebview
我正在开发一个充当 web 视图的简单应用程序。 我需要在 webview 中加载的任何内容上禁用自动完成和其他几个键盘功能。 我知道如何在普通视图控制器中禁用每个 UITextInput 的自动完成功能,但我不知道您可以在 webview 上全局禁用自动完成功能吗?
我查看了 UITextInputTraits Here的文档,但似乎无法做任何工作。
最后的方法是禁用 HTML 标签中的自动完成功能,但这需要在后端进行大量工作。
有没有办法为应用程序全局禁用自动完成功能?
提前致谢。
我不认为有一种方法可以使用iOS代码。 但是,我可能错了。
每次加载网页时,您都可以尝试在webview中运行以下JS
var textFields = document.getElementsByTagName('input');
if (textFields) {
var i;
for( i = 0; i < textFields.length; i++) {
var txtField = textFields[i];
if(txtField) {
txtField.setAttribute('autocomplete','off');
txtField.setAttribute('autocorrect','off');
txtField.setAttribute('autocapitalize','off');
txtField.setAttribute('spellcheck','false');
}
}
}
在我看来,这应该做的工作,而无需你在服务器上进行更改:)
有兴趣知道这是否适合你
如果您使用的是 WKWebView,请使用此功能:
func RemoveAutoCompleteFromWebView(webView: WKWebView) {
let script: String = """
var textFields = document.getElementsByTagName('input');
if (textFields) {
var i;
for( i = 0; i < textFields.length; i++) {
var txtField = textFields[i];
if(txtField) {
txtField.setAttribute('autocomplete','off');
txtField.setAttribute('autocorrect','off');
txtField.setAttribute('autocapitalize','off');
txtField.setAttribute('spellcheck','false');
}
}
}
"""
webView.evaluateJavaScript(script, completionHandler: nil)
}
这将运行在新型 WebView 中禁用自动完成所需的 JavaScript。 只需传入您想要的 WKWebView 即可。
我已经搜索了很多这个问题。 如果要完全禁用它,则必须使用<textarea>
而不是<div contenteditable="true">
并在UIWebview
加载它。 请尝试以下代码:
<textarea id="content" spellcheck="false" autocorrect="off" autocomplete="off"></textarea>
通过使用此代码, 预测文本和自动完成功能都将下车 。
斯威夫特4
func disableAutocomplete() {
let disableAutocompleteScript: String = """
var textFields = document.getElementsByTagName('textarea');
if (textFields) {
var i;
for( i = 0; i < textFields.length; i++) {
var txtField = textFields[i];
if(txtField) {
txtField.setAttribute('autocomplete','off');
txtField.setAttribute('autocorrect','off');
txtField.setAttribute('autocapitalize','off');
txtField.setAttribute('spellcheck','false');
}
}
}
"""
webView.stringByEvaluatingJavaScript(from: disableAutocompleteScript)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.