Я пытаюсь создать расширение Chrome (или приложение) для Chrome OS, которое контролирует приложение переднего плана, с которым в данный момент взаимодействует пользователь.Как определить приоритетное приложение на Chrome OS?
Например, если пользователь:
- играет Angry Birds в течение нескольких минут; затем
- просматривает несколько веб-страниц с помощью Chrome и, наконец
- делает некоторые расчеты с использованием Калькулятор
тогда я хочу, чтобы мое расширение (или приложение), чтобы иметь возможность обнаруживать и реагировать на эти три переходы по мере их возникновения. В идеале информация о приложении, которое я хотел бы захватить, - это либо имя приложения (например, «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 не поддерживает сторонних клиентов доступности.
Я не думаю, что это возможно. Но почему вы хотите рассматривать приложения иначе, чем сайты? –
@ DanielHerr Я не хочу рассматривать приложения по-разному. Как я объяснил в своем вопросе, это хром.* API, которые относятся к ним по-разному. Хром. * API возвращает информацию о окнах браузера/вкладках не * не * окнах приложений. – qypsac
Я думаю, что это можно реализовать с помощью [Native Messaging] (https://developer.chrome.com/extensions/nativeMessaging). – wOxxOm