I am working on a packaged app that will use multiple displays. I need to be able to open windows in specific displays. I've also tried opening windows and then, using javascript, moving them to a monitor. But the app will not move any further than the bounds of the active display.
Any ideas on how to get this to work?
Use chrome.system.display.getInfo
with this you can get the display info for each active display.
With displayInfo.workArea
you can get the working area of each display, you just have to think of one big display and each display is a workArea. With this information you can move your window with
AppWindow#setBounds
to the correct monitor. Be carfull, AppWindow#moveTo
is not working.
Use AppWindow#setBounds
E.g.
chrome.app.window.get('mainWindow').setBounds({"height": 200, "left": 2000})
Tested on v34
Boom. Change this to correct answer.
This was not the solution I was hoping for but as one of the comments mentioned there is a bug with Chrome and multiple monitors. In my case this is an internal application so I'm able to install anything i need to make this work.
My solution was to create a console application which launches the chrome app and then moves the windows around using the Windows32 API. Obviously not ideal but it works and the user still just needs one click to launch the app.
You can write a chrome extension to get this done. In the Background script you can listen to chrome.windows.onCreated event and use chrome.windows.update function to move the windows to other monitors
来源:https://stackoverflow.com/questions/17328295/chrome-packaged-app-and-dual-monitors