1

Я пытаюсь создать расширение Chrome (или приложение) для Chrome OS, которое контролирует приложение переднего плана, с которым в данный момент взаимодействует пользователь.Как определить приоритетное приложение на Chrome OS?

Например, если пользователь:

  1. играет Angry Birds в течение нескольких минут; затем
  2. просматривает несколько веб-страниц с помощью Chrome и, наконец
  3. делает некоторые расчеты с использованием Калькулятор

тогда я хочу, чтобы мое расширение (или приложение), чтобы иметь возможность обнаруживать и реагировать на эти три переходы по мере их возникновения. В идеале информация о приложении, которое я хотел бы захватить, - это либо имя приложения (например, «Angry Birds»), и/или идентификатор приложения (например, com.somecompany.someapp).

я уже экспериментировал с несколькими из хрома * API, но до сих пор я не везло:.

  • chrome.windows и chrome.tabs могут только перечислить браузера окна/вкладки (не те, приложений) ,
  • chrome.app.window может только перечислять окна, которые являются его частью принадлежит приложение (не другие приложения).
  • Приложения отправляются только chrome.app.runtime события жизненного цикла, а не события других приложений.
  • Возможно, я смогу использовать OCR на экране, предоставленном chrome.desktopCapture, но мне, вероятно, придется написать конкретный код для каждого приложения, которое я хочу поддерживать, и это будет очень интенсивно работать с ЦП.

Мне очень повезло с аналогичными работами на других платформах (Windows, Mac, Linux и даже Android) с использованием API-интерфейса Accessibility Client (тот же API, который используется для чтения с экрана для людей с ограниченными возможностями). К сожалению, Chrome OS не поддерживает сторонних клиентов доступности.

+0

Я не думаю, что это возможно. Но почему вы хотите рассматривать приложения иначе, чем сайты? –

+0

@ DanielHerr Я не хочу рассматривать приложения по-разному. Как я объяснил в своем вопросе, это хром.* API, которые относятся к ним по-разному. Хром. * API возвращает информацию о окнах браузера/вкладках не * не * окнах приложений. – qypsac

+0

Я думаю, что это можно реализовать с помощью [Native Messaging] (https://developer.chrome.com/extensions/nativeMessaging). – wOxxOm

ответ

0

API-интерфейсы расширения Chrome и приложения перечислены здесь: Extensions, Apps.

(Un), к счастью, нет ничего, что позволило бы шпионить за деятельностью пользователя вне вашего контекста. Приложения обычно ограничены тем, что происходит в них (плюс некоторые уведомления об оборудовании), а расширения обычно ограничены тем, что происходит в браузере.

Вы можете обнаружить потери фокуса в браузере/приложении, но вы не можете определить, куда направился фокус.
Например, chrome.windows.onFocusChanged событие расширения сообщит -1 для всех окон, которые не являются частью браузера, даже если это приложение Chrome.

1

Там же запрос особенность, чтобы добавить больше типов окон результатам chrome.windows.getAll() - См http://crbug.com/394341

Смежные вопросы