【发布时间】:2019-02-13 01:10:11
【问题描述】:
我的 iOS 应用在特定的 div 上使用 WKWebView 和 contenteditable = true。我想要代码让键盘显示在网络视图中,这样用户就可以开始打字了。我尝试过但没有效果的事情:
- 将 web 视图告诉
becomeFirstResponder(很长一段时间,因为 web 视图不知道要使用什么div)。 - 注入 JS 将
div告诉focus()。 (这适用于其他浏览器,但遗憾的是不适用于WKWebView) - 在 JS 中通过
TouchEvent和dispatchEvent()模拟触摸事件,希望让用户看起来像是点击了div。
在第三种情况下,我还使用addEventListener() 观察模拟触摸并将它们与点击屏幕的真实触摸事件进行比较。看起来关键区别在于事件的 isTrusted 值对于模拟触摸为 false。
我知道让应用程序模拟触摸事件是一个潜在的安全问题,但我没有任何其他想法。我试图让键盘出现,用户输入的内容取决于他们,而不是我想要搞砸的东西。基本上我想要与在UITextView 上调用becomeFirstResponder() 相同的东西。
这与WebKit issue 142757 非常相似,但我还没有弄清楚如何使用从那里链接的建议解决方法。
说明:我可以设置和使用可编辑的网络视图,但在我点击网络视图之前键盘不会出现。我正在尝试让键盘自动出现,无需点击即可开始编辑。
【问题讨论】:
标签: javascript ios webkit wkwebview