使用Electron,是否可以区分用户单击菜单项和使用键盘快捷键?

时间:2019-06-07 16:03:24

标签: google-analytics electron

使用Electron,是否可以区分用户单击菜单项和使用键盘快捷键?

我知道两者的预期行为通常是相同的,但是我想分别跟踪快捷方式和菜单单击的使用。

1 个答案:

答案 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)的出现次数。然后,您知道使用键盘快捷键调用了菜单操作的三分之一。

缺点

此替代方法的缺点是:

  • 菜单加速器和按键侦听器的重复代码
  • 使用键盘时会生成两个事件

根据您的特定用例,人们可能会想到补救这些弊端的可能方法。