簡體   English   中英

Xcode 6 Swift WKWebView鍵盤設置

[英]Xcode 6 Swift WKWebView keyboard settings

我正在使用WKWebView加載網站,一切正常。 但是,我沒有像處理文本字段那樣訪問鍵盤屬性。 有人能指出一些資源,可以幫助我訪問網絡鍵盤的屬性(通過gui或編程)?

iOS文本編程指南有一個名為配置Web視圖鍵盤的部分,其中說明了以下內容:

盡管UIWebView類不直接支持UITextInputTraits協議,但您可以為文本輸入元素配置一些鍵盤屬性。 例如,您可以在input元素的定義中包含autocorrectautocapitalize屬性,以指定鍵盤的行為,如以下示例所示。

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

您還可以控制當用戶觸摸網頁中的文本字段時顯示的鍵盤類型。 要顯示電話鍵盤,電子郵件鍵盤或URL鍵盤,請分別對輸入元素的type屬性使用telemailurl關鍵字。 要顯示數字鍵盤,請將pattern屬性的值設置為“ [0-9]* ”或“ \\d* ”。

這些關鍵字和模式屬性是HTML 5的一部分,可在iOS中使用。 以下列表顯示了如何顯示每種類型的鍵盤,包括標准鍵盤。

文字: <input type="text"></input>
電話: <input type="tel"></input>
URL: <input type="url"></input>
電子郵件: <input type="email"></input>
郵編: <input type="text" pattern="[0-9]*"></input>

當然,這只能在有限的情況下解決一些非常具體的問題,但據我所知,即使使用WKWebView ,我們也必須使用WKWebView

我希望有人證明我是錯的,讓我們知道如何添加鍵盤配件視圖,或者當它專注於iOS應用中的Web視圖中的表單元素時更改鍵盤的外觀。

我有一個HTML身份驗證頁面,我在WKWebView中顯示。 自動更正/建議欄顯示在用戶名字段的鍵盤上方。 由於我不控制HTML,我使用以下Swift 3代碼和javascript來添加如上所述的自動更正屬性:

    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
}

注意:鍵盤上方的欄仍然保留,有其他選項,而不是建議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM