显示键盘按钮点击调用WKWebview输入字段
问题描述:
我一直在寻找很多关于这个问题,我没有任何运气,我如何使键盘上的iPhone显示通过单击按钮,并将焦点设置在WKWebview输入字段?显示键盘按钮点击调用WKWebview输入字段
我有这样的代码初始化一个按钮,并在迅速3
let keyBoardButton = UIButton (type: .custom)
keyBoardButton.setImage(UIImage(named: "keyboard.png"), for: UIControlState.normal)
keyBoardButton.addTarget(self, action: #selector(ViewController.showKeyboard), for: UIControlEvents.touchUpInside)
keyBoardButton.frame = CGRect(x: 0, y: 0, width: 25, height: 25)
调用FUNC和我打电话此FUNC
func showKeyboard() {
self.delay { [weak self] in
let javascript = " document.getElementById('myID').focus();"
self?.webView?.evaluateJavaScript(javascript) { [weak self] (result, error) in
if let error = error {
print(error)
} else if let result = result{
print(result)
}
}
}
}
我设置了专注于我的输入字段,但我不知道如何显示键盘,任何人都可以提供帮助?
答
您需要在WKWebView
上使用evaluateJavaScript
方法在专注于文本字段的页面上运行一些javascript。
JavaScript将取决于页面,但它可能是这样的。
let js = "document.getElementById(\"MY_TEXTFIELD_ID\").focus();"
webView.evaluateJavaScript(js)
编辑:一些更多的挖掘后,看来这是在WebKit的已知错误。 https://bugs.webkit.org/show_bug.cgi?id=142757
答
我碰到了同样的问题
使用该 Great Answer注入Javascript脚本到您的WebKitView,只是用
document.getElementById('myID').focus();
或
document.getElementsByClassName('myClass').focus();
添加焦点后( )属性
我已经尝试过,但那不足以显示键盘。 – rijoh
你知道如何调出键盘吗?因为这只是重点。 – rijoh
我更新了我的帖子,看起来这是一个已知的错误。 –