2014-11-11 13 views
9

Utilizzo un WKWebView per caricare un sito Web e tutto funziona correttamente. Tuttavia, non ho accesso alle proprietà della tastiera nello stesso modo in cui lo faccio con un campo di testo. Qualcuno può indicarmi alcune risorse che mi aiuteranno ad accedere alle proprietà (tramite la GUI o programmaticamente) della tastiera sul web?Xcode 6 Swift Impostazioni tastiera WKWebView

+0

Che tipo di impostazioni ti aspetti? – techloverr

risposta

1

Il Text Programming Guide for iOS, ha una sezione chiamata Configuring the Keyboard for Web Views che indica quanto segue:

Sebbene la classe UIWebView non supporta direttamente il protocollo UITextInputTraits, è possibile configurare alcuni attributi della tastiera per gli elementi di inserimento del testo. Ad esempio, è possibile includere gli attributi autocorrect e autocapitalize nella definizione di un elemento di input per specificare i comportamenti della tastiera, come illustrato nell'esempio seguente.

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

È inoltre possibile controllare quale tipo di tastiera viene visualizzato quando un utente tocca un campo di testo in una pagina Web. Per visualizzare una tastiera del telefono, una tastiera e-mail o una tastiera URL, utilizzare le parole chiave tel, email o url rispettivamente per l'attributo type su un elemento di input. Per visualizzare una tastiera numerica, impostare il valore dell'attributo pattern su "[0-9]*" o "\d*".

Queste parole chiave e l'attributo pattern fanno parte di HTML 5 e sono disponibili in iOS. L'elenco seguente mostra come visualizzare ciascun tipo di tastiera, inclusa la tastiera standard.

Testo: <input type="text"></input>
Telefono: <input type="tel"></input>
URL: <input type="url"></input>
Email: <input type="email"></input>
CAP: <input type="text" pattern="[0-9]*"></input>

Questo, naturalmente, risolve solo alcuni problemi molto specifici in un numero limitato di situazioni, ma per quanto ne so è tutto ciò con cui dobbiamo lavorare, anche con WKWebView.

Mi piacerebbe che qualcuno mi dimostrasse che ci sbagliavo e ci ha permesso di sapere come aggiungere una vista da tastiera o modificare l'aspetto della tastiera quando si concentra su un elemento del modulo all'interno di una vista Web in un'app iOS.

0

Ho una pagina di autenticazione HTML che visualizzo in WKWebView. La barra di correzione automatica/suggerimento appare sopra la tastiera per il campo del nome utente. Dato che io non controllo il codice HTML, ho usato il seguente codice Swift 3 e JavaScript per aggiungere l'attributo di correzione automatica come detto sopra:

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 
} 

Nota: La barra sopra la tastiera rimane, con le altre opzioni, non solo i suggerimenti.