2

我正在开发一个 phonegap 应用程序,该应用程序使用 iframe 嵌入已经对移动设备友好的 web 应用程序。在 webapp 中有一个搜索功能,它聚焦于一个显示虚拟键盘的文本字段。到目前为止一切都很好...

但是,我正在使用一个库,该库在文档(iframe 内的那个)上注册了一个 touchstart 侦听器。因此,如果在虚拟键盘显示用户触摸文档时,键盘将停止工作。

从 ipad(或 XCode 中的 ipad 模拟器......我在 7.0.3 上测试过)转到此处并按照说明操作:https ://s3.amazonaws.com/ypassets-andy/app-frame.html

有趣的是,如果您不将其包装在 iframe 中,键盘不会损坏。转到此处:https ://s3.amazonaws.com/ypassets-andy/app.html并按照说明查看它不会中断。

我一直在努力解决这个问题,但不知道如何让这件事发挥作用。作为参考,这些堆栈交换帖子似乎相关,但我无法解决它们的问题:

感谢您的任何想法!

安迪

4

1 回答 1

2

这似乎是一个未归档的 iOS 错误。唯一的解决方法是将输入从 iframe 移动到主文档中。

更长的故事:

安迪,试图解决这个问题,但最终失败了(用于模式中的登录/设置对话框)。它几乎让我从未发现,但也许这是一个很好的禅宗练习。这是我们消除/尝试的内容:

  • iframe 没有被关注/关注不同的文档
  • 在设置焦点之前完全模糊一切
  • setRange 等而不是焦点
  • touchstart 堆栈中的手动构建和触发事件
  • 检查事件是否多次触发
  • 看看用户选择或触摸标注等css属性是否有任何区别

所有最后的假设是它以某种方式相关的 Webkits“滚动输入到视图”逻辑在 iOS 7 中得到了一些更新。

于 2014-06-14T10:20:05.340 回答