如何防止斜杠(“/”)键在我的 Flutter 应用程序中打开 Firefox 的“快速查找”功能?

问题描述 投票:0回答:1

背景

在我的 Flutter 应用程序中,我使用

LogicalKeyboardKey.slash
键作为除法运算的快捷键。

部署到网络时,在 Chrome 中这不是问题并且工作正常。该问题特别针对 Firefox。

问题

当用户在 Firefox 中按下

/
时,除法运算仍然会触发,Firefox also 会打开其“快速查找”辅助功能。发生这种情况后,光标和焦点将转移到“快速查找”文本输入框。

这会造成用户体验问题,后续按键会将文本添加到“快速查找”输入框,而不是在“快速查找”打开之前在我的 Flutter 应用程序中保持焦点的内容。

问题

如何在 Flutter/Dart 中以编程方式阻止

LogicalKeyboardKey.slash
键打开 Firefox 的“快速查找”功能?

注释

这个按键触发这个操作是业务需求,所以我不能使用另一个按键作为替代。

该应用程序也是面向公众的,因此要求所有用户在使用 Firefox 时手动禁用“快速查找”是不现实的,除非它是应用程序本身的标签。 (除非完全必要,否则应该避免这种情况。)

flutter dart firefox keyboard-shortcuts
1个回答
0
投票

问题

几天来,如果按下键盘数字键盘上的

/
键,Firefox 就会无法打开搜索框。此外,如果在编辑 HTML 中的
contenteditable
元素时按下此键,一旦搜索框打开,进一步的编辑就会陷入混乱,需要重新加载页面才能修复。

如何修复

keydown
事件到达目标之前捕获它们,并防止 FireFox 的默认操作稍后发生:

function keydown(event) {
    if( event.code == "NumpadDivide") {
            event.preventDefault();
    }
}
window.addEventListener("keydown", keydown, {capture: true} );

这应该在 Flutter/Dart 下也能工作,因为 Firefox 添加了对数字键盘除法键的默认响应,而其他浏览器没有实现,因此阻止此特定的默认操作在其他浏览器中应该没有效果。

谢谢你的提问。

© www.soinside.com 2019 - 2024. All rights reserved.