我们在三星 s3(运行 android 4.0.4)上观察到我们的应用程序存在一个非常奇怪的错误
在文本区域中输入文本时,只会填充每个单词的第一个字符,并且只有在您按下空格或从预测文本中选择一个单词之后。
键入“what the hell ..”将导致在文本区域中输入“wt h”
不同屏幕上的其他文本区域工作正常。
关闭预测文本也解决了这个问题。
有没有人遇到过这个问题?
经过进一步调查,我们注意到有问题的文本区域在获得焦点时并没有改变外观 - 我们所有的工作文本字段在单击时都变成了带有橙色边框的方形角字段。
事实证明,android 做了一些奇怪的事情,并在它们获得焦点时用原生元素动态替换您的输入字段(因此无法使用橙色边框的方形位:()。
踢球者 - 如果您的输入位于具有 css 绝对定位的元素内,则此操作失败,并且这似乎也弄乱了某些形式的键盘输入。将元素(和父元素)设置为使用位置静态解决了这个问题。
我们仅在启用预测文本时在 s3 上看到了这一点(这是默认设置..),但它可能在其他设备上。
将此归结为 Androids 浏览器仍然是一团糟..
请注意,使用这个 css hack 来阻止原生元素被替换:
input:focus { -webkit-user-modify: read-write-plaintext-only; }
导致我们所有的文本字段都有这个线程中概述的问题。
我也有这个问题很长一段时间,但发现停止这个故障的关键是每次遇到第一个字符输入问题时关闭键盘设置中的预测文本选项。就个人而言,我喜欢 99% 的时间都使用预测文本,但是某些网页(主要是电子邮件提供商)没有配置为使用预测文本,所以我保持预测文本打开并在遇到时将其关闭我遇到第一个字符输入唯一问题的网页。要打开/关闭它,只需点击键盘上的 cog 按钮,在它显示预测文本的地方,只需将滑块向左滑动到关闭位置。这将允许输入整个单词,而不是一次只输入 1 个字符。然后,一旦你完成输入,你可以再次点击齿轮并重新打开预测文本。