使用Electron,是否可以区分用户单击菜单项和使用键盘快捷键?
我知道两者的预期行为通常是相同的,但是我想分别跟踪快捷方式和菜单单击的使用。
答案 0 :(得分:0)
很遗憾,您不能直接执行此操作。 MenuItem的click
处理程序的event
参数没有指示该操作是通过鼠标还是键盘调用的属性。
但是,您当然可以使用一种解决方法,即如果使用键盘快捷键触发了菜单功能,则可以使用{{3}同时从渲染器过程中捕获按键的按下。 }事件。
以最简单的形式,您可以跟踪所有调用到菜单功能,即不考虑是通过鼠标还是键盘来调用它们。同时,您在渲染器中侦听相同的快捷方式。每当检测到快捷方式(它也是菜单中的加速器)时,您都要对此进行记录。
假设您使用鼠标单击操作,然后使用快捷方式,然后再次使用鼠标,则跟踪的事件将是:
# time event
1 t0 Menu item action (Using mouse)
2 t1 Menu item action (Using keyboard shortcut)
3 ~t1 Keyboard shortcut detected
4 t2 Menu item action (Using mouse)
如果具有这样的数据,则可以计算“菜单项操作”(此处为3)和“检测到键盘快捷方式”(此处为1)的出现次数。然后,您知道使用键盘快捷键调用了菜单操作的三分之一。
此替代方法的缺点是:
根据您的特定用例,人们可能会想到补救这些弊端的可能方法。