Google键盘剪贴板不触发粘贴事件

Google Keyboard clipboard does not trigger a paste event

我正在使用多输入组件来捕获 MFA 代码。考虑六个相同的框,在您键入时 - 它会移动到下一个框并在完成时自动提交。

我们通过从一开始就一次一个地填写代码来独特地处理粘贴逻辑,这非常有效,并允许用户粘贴到任何输入字段。

问题是,当使用 google 键盘(GBoard - Pixl 手机原生)时,剪贴板功能似乎不会触发实际粘贴,而是会尝试触发某种 onChange 事件或一系列onChange 事件。

例如,如果您的剪贴板中有 123456 并且您按下剪贴板按钮,更改处理程序将以“1”而不是“123456”的 onPaste 触发。

我想知道是否有人 运行 遇到过类似的问题以及您是如何解决的。我已经查看了 navigator.clipboard 路由 - 但这需要提示用户获得权限,并且我仍然需要唯一标识用户键盘,因为这会触发正常的复制粘贴(可以正常工作)

我的同事找到了一个解决方案,当 e.target.value.length 等于 codeLength(在本例中表示来自 gBoard 的粘贴)时,特定的 handleChange 行为等于 handlePaste 行为。希望这对可能 运行 解决此问题的其他人有所帮助。