[英]Xcode 6 Swift WKWebView keyboard settings
我正在使用WKWebView加載網站,一切正常。 但是,我沒有像處理文本字段那樣訪問鍵盤屬性。 有人能指出一些資源,可以幫助我訪問網絡鍵盤的屬性(通過gui或編程)?
iOS文本編程指南有一個名為配置Web視圖鍵盤的部分,其中說明了以下內容:
盡管UIWebView類不直接支持UITextInputTraits協議,但您可以為文本輸入元素配置一些鍵盤屬性。 例如,您可以在input元素的定義中包含
autocorrect
和autocapitalize
屬性,以指定鍵盤的行為,如以下示例所示。<input type="text" size="30" autocorrect="off" autocapitalize="on">
您還可以控制當用戶觸摸網頁中的文本字段時顯示的鍵盤類型。 要顯示電話鍵盤,電子郵件鍵盤或URL鍵盤,請分別對輸入元素的type屬性使用
tel
,url
關鍵字。 要顯示數字鍵盤,請將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.