如何获得WKWebView在iOS上显示键盘?

时间:2018-09-07 16:44:06

标签: javascript ios webkit wkwebview

我的iOS应用在特定WKWebView上使用contenteditable = truediv。我想要一些代码来使键盘显示在Web视图中,以便用户可以开始键入。我尝试过的所有操作均无效:

  1. 将网络视图介绍给becomeFirstResponder(这很长一段时间,因为网络视图不知道要使用什么div)。
  2. 注入JS以将div告知focus()。 (这在其他浏览器中有效,但在WKWebView中无效)
  3. 通过TouchEventdispatchEvent()在JS中模拟触摸事件,以期使用户看起来像在div上轻敲。

在第三种情况下,我还使用addEventListener()来观察模拟的触摸,并将它们与点击屏幕时的真实触摸事件进行比较。似乎关键的区别在于事件的isTrusted值对于模拟的触摸为假。

我知道让应用程序模拟触摸事件是一个潜在的安全问题,但是我没有其他想法。我试图让键盘显示出来,用户键入的内容取决于他们,而不是我想弄乱的东西。基本上,我希望与在becomeFirstResponder()上调用UITextView相同。

这与WebKit issue 142757非常相似,但是我还没有弄清楚如何使用从那里链接的建议解决方法。

说明:我可以设置和使用可编辑的Web视图,但是只有在点击Web视图后才会出现键盘。我正在尝试使键盘自动出现,而不需要点击以启动编辑。

1 个答案:

答案 0 :(得分:0)

我在iPad游乐场上尝试了此操作,但我却没有采取任何措施。可能还有另一种视图正在捕获触摸,或者“ contenteditable”拼写错误,或者其他原因?

screenshot of playground before running

screenshot of playground after tapping div