显示键盘按钮点击调用WKWebview输入字段

显示键盘按钮点击调用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

+0

我已经尝试过,但那不足以显示键盘。 – rijoh

+0

你知道如何调出键盘吗?因为这只是重点。 – rijoh

+0

我更新了我的帖子,看起来这是一个已知的错误。 –

我碰到了同样的问题

使用该 Great Answer注入Javascript脚本到您的WebKitView,只是用

document.getElementById('myID').focus(); 

document.getElementsByClassName('myClass').focus(); 

添加焦点后( )属性