2014-11-11 15 views
9

Ich benutze ein WKWebView, um eine Website zu laden und alles funktioniert gut. Ich habe jedoch keinen Zugriff auf die Eigenschaften der Tastatur, genauso wie bei einem Textfeld. Kann mir jemand auf einige Ressourcen verweisen, die mir den Zugriff auf Eigenschaften (über die GUI oder programmatisch) der Tastatur im Internet ermöglichen?Xcode 6 Swift WKWebView Tastatureinstellungen

+0

Welche Art von Einstellungen erwarten Sie? – techloverr

Antwort

1

Die Text Programming Guide for iOS, hat einen Abschnitt Configuring the Keyboard for Web Views, die besagt folgende genannt:

Obwohl die UIWebView Klasse unterstützt nicht das UITextInputTraits Protokoll direkt, können Sie einige Tastatur-Attribute für Texteingabeelemente konfigurieren. Sie können z. B. die Attribute autocorrect und autocapitalize in die Definition eines Eingabeelements aufnehmen, um das Verhalten der Tastatur anzugeben, wie im folgenden Beispiel gezeigt.

<input type="text" size="30" autocorrect="off" autocapitalize="on"> 

Sie können auch Art der Tastatur steuern, welche angezeigt wird, wenn ein Benutzer ein Textfeld in einer Web-Seite berührt. Verwenden Sie zum Anzeigen einer Telefontastatur, einer E-Mail-Tastatur oder einer URL-Tastatur die Schlüsselwörter tel, email oder url für das Attribut type für ein Eingabeelement. Um eine numerische Tastatur anzuzeigen, setzen Sie den Wert des Musterattributs auf "[0-9]*" oder "\d*".

Diese Schlüsselwörter und das Musterattribut sind Teil von HTML 5 und in iOS verfügbar. Die folgende Liste zeigt, wie jeder Tastaturtyp einschließlich der Standardtastatur angezeigt wird.

Text: <input type="text"></input>
Telefon: <input type="tel"></input>
URL: <input type="url"></input>
E-Mail: <input type="email"></input>
Postleitzahl: <input type="text" pattern="[0-9]*"></input>

Das ist natürlich, löst nur einige sehr spezifische Probleme in einer begrenzten Anzahl von Situationen, aber soweit ich weiß, ist das alles, was wir arbeiten müssen, auch mit WKWebView.

Ich hätte gerne jemanden, der mich falsch ausweist, und lässt uns wissen, wie man eine Tastaturzubehöransicht hinzufügt oder das Aussehen der Tastatur ändert, wenn es auf ein Formularelement in einer Webansicht in einer iOS-App fokussiert ist.

0

Ich habe eine HTML-Auth-Seite, die ich in WKWebView anzeigen. Die Autokorrektur-/Vorschlagsleiste erscheint über der Tastatur für das Feld Benutzername. Da ich die HTML nicht kontrollieren, habe ich den folgenden Swift 3-Code und Javascript, um das autocorrect Attribut hinzufügen, wie oben erwähnt:

var webView: WKWebView! 

override func loadView() { 

    let autocorrectJavaScript = "var inputTextElement = document.getElementById('username');" 
    + " if (inputTextElement != null) {" 
    + "  var autocorrectAttribute = document.createAttribute('autocorrect');" 
    + "  autocorrectAttribute.value = 'off';" 
    + "  inputTextElement.setAttributeNode(autocorrectAttribute);" 
    + " }" 
    let userScript = WKUserScript(source: autocorrectJavaScript, injectionTime: .atDocumentEnd, forMainFrameOnly: false) 
    let webConfiguration = WKWebViewConfiguration() 
    webConfiguration.userContentController.addUserScript(userScript) 
    webView = WKWebView(frame: .zero, configuration: webConfiguration) 
    view = webView 
} 

Hinweis: Die Leiste oberhalb der Tastatur bleibt nach wie vor, mit anderen Optionen, nur nicht die Vorschläge.