2014-11-11 16 views
9

Używam WKWebView do załadowania strony internetowej i wszystko działa poprawnie. Jednak nie mam dostępu do właściwości klawiatury w taki sam sposób jak w przypadku pola tekstowego. Czy ktoś może wskazać mi jakieś zasoby, które pomogą mi uzyskać dostęp do właściwości (poprzez gui lub programowo) klawiatury w Internecie?Ustawienia klawiatury Xcode 6 Swift WKWebView

+0

Jakich ustawień oczekujesz? – techloverr

Odpowiedz

1

Text Programming Guide for iOS, ma sekcję o nazwie Configuring the Keyboard for Web Views który stwierdza co następuje:

Chociaż klasa UIWebView nie obsługuje protokół UITextInputTraits bezpośrednio, można skonfigurować atrybuty niektórych elementów wejściowych klawiatura dla tekstu. Na przykład można dołączyć atrybuty autocorrect i autocapitalize w definicji elementu wejściowego, aby określić zachowania klawiatury, jak pokazano w poniższym przykładzie.

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

Możesz także kontrolować, który rodzaj klawiatury jest wyświetlany, gdy użytkownik dotknie pola tekstowego na stronie internetowej. Aby wyświetlić klawiaturę telefonu, klawiaturę e-mail lub klawiaturę URL, użyj słów kluczowych odpowiednio dla atrybutu type elementu input. Aby wyświetlić klawiaturę numeryczną, ustaw wartość atrybutu wzorca na "[0-9]*" lub "\d*".

Te słowa kluczowe i atrybut wzorca są częścią języka HTML 5 i są dostępne w systemie iOS. Poniższa lista pokazuje, jak wyświetlić każdy typ klawiatury, łącznie ze standardową klawiaturą.

Tekst: <input type="text"></input>
Telefon: <input type="tel"></input>
URL: <input type="url"></input>
Email: <input type="email"></input>
Kod pocztowy: <input type="text" pattern="[0-9]*"></input>

To, oczywiście, tylko rozwiązuje kilka bardzo konkretnych problemów w ograniczonej liczbie sytuacje, ale o ile wiem, to wszystko, z czym musimy pracować, nawet z WKWebView.

Chciałbym, aby ktoś mi udowodnił, że się mylę i daje nam znać, jak dodać widok akcesoriów klawiatury lub zmienić wygląd klawiatury, gdy koncentruje się na elemencie formularza w widoku internetowym w aplikacji na iOS.

0

Mam stronę auth HTML, którą wyświetlam w WKWebView. Pasek autokorekty/sugestii pojawia się nad klawiaturą dla pola nazwy użytkownika. Ponieważ nie sterować HTML, używałem następujący kod Swift 3 i javascript, aby dodać atrybut Autokorekta jak wspomniano powyżej:

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 
} 

Uwaga: Pasek nad klawiaturą nadal pozostaje z innych opcji, po prostu nie sugestie.

Powiązane problemy