如上所述: https://developer.chrome.com/apps/app_window#method-create
如果您为自己的窗口使用ID(如果您不想开始使用应用程序两次,则需要),这样可以存储大小的位置。并且他们建议您创建隐藏移动的窗口并在显示之前重新调整大小。
如果我尝试在特定屏幕上创建一个窗口,如下所示:
var left = parseInt(displayInfo.workArea.left);
chrome.app.window.create('index.html', {
id: 'window-'+displayInfo.id,
hidden: true,
bounds: {left: left, top: 0, width: 100 , height: 100 }
, callbackWindow.bind(null, left, 0, displayInfo));
var callbackWindow = function (left, top, displayInfo, createdWindow) {
createdWindow.moveTo(displayInfo.workArea.left, displayInfo.workArea.top);
console.log(createdWindow.id, createdWindow.getBounds());
createdWindow.show();
};
应用程序第一次启动时,窗口位于正确的位置,现在,如果我们移动窗口并重新调整大小,然后重新启动应用程序。停留在与关闭前相同的药水。
换句话说,我们无法覆盖存储的位置。这是一个Bug还是应该像这样工作?
我已使用Chrome 32.0.1700.107 dev-m在Windows 7上进行了测试
答案 0 :(得分:1)
moveTo是标准的DOM moveTo。 AppWindow对象只是将moveTo和resizeTo函数转发给窗口对象。
如果您尝试使用AppWindow.setBounds会发生什么?我猜测,但尚未测试,DOM功能被忽略,因为窗口不可见。
此外,您使用的是相当旧版本的Chrome。我认为目前的稳定版本是34。
答案 1 :(得分:0)
关于如何调用moveTo
,文档有点不清楚。
请尝试使用以下格式,与其他参数化调用一致:
createdWindow.moveTo({
left: displayInfo.workArea.left,
top: displayInfo.workArea.top
});