如何禁用 Flutter Web 上的上下文菜单?(右键单击,触摸按)

y0n*_*nd0 7 contextmenu flutter disable

例如,当在移动设备(例如 DevTools 移动视图)上右键单击或长按触摸时,如何禁用 Flutter(2.x、Web/浏览器)中的上下文菜单。

我来自 Angular 等 Web 开发领域。在 HTML/JS 中,它的工作原理如下:

document.body.addEventListener('contextmenu', (event) => {
  event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

但如何在 Flutter 上做到这一点呢?是否有可以禁用的上下文菜单事件。阻止右键单击将不起作用。因为它也会出现在移动设备上长按(释放时)。

y0n*_*nd0 3

目前官方还没有给出解决方案。以下是相关的 GitHub 问题:flutter#78671

解决方法:只需打开浏览器的开发工具并在控制台中执行以下代码:

document.body.addEventListener('contextmenu', (event) => {
  event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

Flutter 的热重载不会重新加载页面。所以它将在整个会话中起作用。