如何识别前景应用程序'在Chrome OS上?

时间:2016-07-18 03:01:12

标签: google-chrome google-chrome-extension google-chrome-app google-chrome-os

我正在尝试为Chrome操作系统创建Chrome扩展程序(或应用程序),以监控用户当前正在与之交互的前台应用程序。

例如,如果用户:

  1. 愤怒的小鸟几分钟;然后
  2. 使用 Chrome 浏览一些网页,最后浏览
  3. 使用计算器
  4. 进行一些计算

    然后我希望我的扩展程序(或应用程序)能够在发生这三个转换时检测并响应它们。理想情况下,我想要捕获的应用程序信息是应用程序名称(例如"愤怒的小鸟")和/或应用程序ID(例如com.somecompany.someapp)。

    我已经尝试了几种chrome。* API,但到目前为止我还没有运气:

    • chrome.windowschrome.tabs只能枚举浏览器窗口/标签(不是应用程序)。
    • chrome.app.window只能枚举属于其拥有应用程序(不是其他应用程序)的窗口。
    • 应用仅发送自己的 chrome.app.runtime生命周期事件,而不是其他应用的事件。
    • 我可以在chrome.desktopCapture提供的屏幕演示中使用OCR,但我可能必须为每个我想要支持的应用编写特定的代码,这将非常占用CPU。

    我很幸运在其他平台(Windows,Mac,Linux甚至Android)上使用辅助功能客户端API(屏幕阅读器为残障人士使用相同的API)做了类似的工作。很遗憾,Chrome操作系统似乎并不能帮助第三方辅助功能客户端。

2 个答案:

答案 0 :(得分:1)

要为chrome.windows.getAll()的结果添加更多窗口类型的功能请求 - 请参阅http://crbug.com/394341

答案 1 :(得分:0)

此处列出了Chrome扩展程序和应用API:ExtensionsApps

(联合国)幸运的是,没有任何内容可以允许在您的上下文之外监视用户活动。应用程序通常仅限于它们中发生的事情(加上一些硬件通知),而扩展通常仅限于浏览器中发生的事情。

您可以在浏览器/应用中检测焦点丢失,但无法确定焦点的位置 例如,chrome.windows.onFocusChanged扩展事件将为不属于浏览器的所有窗口报告-1,即使它是Chrome应用。