2016-08-25 7 views
0

Я создаю приложение Chrome для определенных рабочих станций, которые будут иметь настройку с двумя мониторами. В идеале, когда приложение запускается, я хочу создать два разных окна (по одному на каждом мониторе), которые будут определять и сами размеры, чтобы заполнить соответствующее разрешение каждого монитора.API-интерфейс App App App Apping и позиционирование с несколькими дисплеями

Я не могу найти никакой документации или примера о том, как это сделать. Хотя я вижу, что есть способы определить разрешение и установить положение и размер окон, созданных в моем приложении Chrome, для меня нет ничего очевидного, когда я назначаю монитор, чтобы окна (ов) должны были быть созданы.

Пробовал ли кто-нибудь еще? Есть ли способ сделать это через API приложений Chrome? Или есть другое решение?

Вот документация к API: chrome.app.window

Спасибо!

ответ

1

Когда вы работаете с несколькими (не зеркальными) мониторами, ОС по существу создает «комбинированное» пространство координат (по крайней мере, насколько работает координаты приложения Chrome).

Например, если у вас есть 2 боковых монитора 1920x1080, то один будет иметь координаты в диапазоне (0,0)-(1989,1079), а другой (1920,0)-(3839,1079). Обратите внимание, что вы не можете предположить, что они бок о бок, их можно «склеить» вместе любым трогательным способом, включая возможное смещение.

Если вы передадите outerBounds.top/ свойствам chrome.app.window.create, они фактически относятся к объединенному пространству координат, а не к текущему монитору. Chrome, скорее всего, зацепит/сдвинет то, что вы передадите ему, чтобы поместиться на экране.

Теперь, как определить конфигурацию монитора? Для этого есть API, chrome.system.display (обратите внимание на требуемое разрешение "system.display"). В нем будут перечислены мониторы, вместе «комбинированная» координата их верхнего левого угла и их размер (в том числе, кстати, информация о области «workArea»: т. Е. Размер монитора минус системные панели инструментов).

Вот код, который делает то, что вы описали:

chrome.system.display.getInfo((screens) => { 
    screens.forEach((screen) => { 
    chrome.app.window.create("app.html", { 
     outerBounds: screen.workArea // It so happens it's formatted as expected 
    }); 
    }); 
}); 

Если вы хотите окно полноэкранного режима/развёрнуто, это, вероятно, лучше всего сделать это после того, как они созданы, чтобы гарантировать, что они находятся на правильном мониторе первым.

В качестве сторонних, обратите внимание, что приложения Chrome are being deprecated.

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

  • Нет связанных вопросов^_^