2016-08-25 1 views
0

듀얼 모니터 설정이있는 특정 워크 스테이션 용 Chrome 앱을 만들고 있습니다. 이상적으로, 응용 프로그램이 시작되면 각 모니터의 해상도를 채우기 위해 감지하고 크기를 조정하는 두 개의 다른 창 (각 모니터에 하나씩)을 만들고 싶습니다.크롬 앱 창 API 다중 디스플레이로 지정 및 배치

이 문제를 해결하는 방법에 대한 문서 나 예제를 찾을 수 없습니다. 해상도를 감지하고 Chrome 앱에서 생성 된 창의 위치와 크기를 설정하는 방법을 볼 수는 있지만 모니터를 지정하는 위치는 나에게 분명하지 않습니다.

아무도이 작업을 시도 했습니까? Chrome App API를 통해이를 수행 할 수 있습니까? 아니면 다른 해결책이 있습니까? chrome.app.window

감사 :

다음은 API에 대한 문서입니다!

답변

1

여러 개의 (미러링되지 않은) 모니터로 작업 할 때 OS는 기본적으로 "결합 된"좌표 공간을 만듭니다 (적어도 Chrome App이 작동하는 한).

예를 들어, 나란히 2 개의 1920x1080 모니터가있는 경우 좌표는 (0,0)-(1989,1079) 범위에 있고 다른 하나는 (1920,0)-(3839,1079)입니다. 나란히 있다고 가정 할 수는 없으며, 가능한 오프셋을 포함하여 모든 접하는 방식으로 함께 "접착"될 수 있습니다.

outerBounds.top/outerBounds.left 속성을 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 
    }); 
    }); 
}); 

당신이 창문/최대화 전체 화면하려는 경우, 그것은 그들이 그들이 먼저 올바른 모니터에있는 보장하기 위해 작성 후에 그렇게 아마 가장 좋습니다.


제발, 크롬 앱 are being deprecated을 고려해보십시오.