【问题标题】:How can I get a WKWebView to show the keyboard on iOS?如何让 WKWebView 在 iOS 上显示键盘?
【发布时间】:2019-02-13 01:10:11
【问题描述】:

我的 iOS 应用在特定的 div 上使用 WKWebViewcontenteditable = true。我想要代码让键盘显示在网络视图中,这样用户就可以开始打字了。我尝试过但没有效果的事情:

  1. 将 web 视图告诉 becomeFirstResponder(很长一段时间,因为 web 视图不知道要使用什么 div)。
  2. 注入 JS 将div 告诉focus()。 (这适用于其他浏览器,但遗憾的是不适用于WKWebView
  3. 在 JS 中通过 TouchEventdispatchEvent() 模拟触摸事件,希望让用户看起来像是点击了 div

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

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

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

说明:我可以设置和使用可编辑的网络视图,但在我点击网络视图之前键盘不会出现。我正在尝试让键盘自动出现,无需点击即可开始编辑。

【问题讨论】:

标签: javascript ios webkit wkwebview


【解决方案1】:

我在 iPad 操场上进行了尝试,我无需任何操作即可正常工作。可能有另一个视图正在捕获触摸,或者“contenteditable”拼写错误,或者其他什么?

【讨论】:

  • 使用该代码,在我点击网络视图之前,键盘不会出现在我面前。我可以做到这一点 - 问题是,我如何让键盘出现从代码而不需要点击?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-08
  • 1970-01-01
  • 1970-01-01
  • 2019-10-09
  • 2019-06-22
  • 1970-01-01
相关资源
最近更新 更多