Chrome 打包应用,始终位于顶部窗口

Chrome Packaged app, Always on top window

本文关键字:于顶部 窗口 包应用 应用 Chrome      更新时间:2023-09-26

我正在编写文本编辑器,在切换到浏览器或电子书阅读器软件时,我需要应用程序窗口始终位于顶部。 据我所知,对于Windows用户,Chrome不提供任何解决方案。 创建窗口以使窗口始终位于顶部时是否有任何参数要发送?

或者我可以在应用程序中提供任何按钮来打开或关闭此功能吗?

我用来在 bg 中创建窗口的代码.js:

var launch = function () {
chrome.app.window.create('index.html', {
  type: 'shell',
  width: 440,
  height: 680,
  minWidth: 440,
  maxHeight: 680,
  id: 'paat-start'
});
};
chrome.app.runtime.onLaunched.addListener(launch);
chrome.commands.onCommand.addListener(launch);

感谢您的任何建议。

正如 Ben Wells 上面提到的,此功能现在在稳定版本(v33 或 v34)中可通过 chrome.app.windows.create 中的alwaysOnTop选项使用。请注意,manifest.json文件中需要特殊权限。例:

背景.js
chrome.app.window.create('window.html', {
  alwaysOnTop: true,
}, function (appWindow) {
  // Window created and will remain on top of others.
  // Change the property programmatically via:
  //appWindow.setAlwaysOnTop();
});
manifest.json
"permissions": [
  "alwaysOnTopWindows"
]

这似乎已添加到问题26427002中,在问题159523002和问题48113024中变得稳定,感谢社区!


不久前我对此进行了研究,并希望对我的发现进行编目,因为从历史上看,文档中存在一些差异,这些差异以前声明所需权限的名称是alwaysOnTop,但使用它会导致"权限未知"错误。

通读此功能的原始建议导致我发出326361其中提到权限设置实际上称为 alwaysOnTopWindows .但是,当时使用这个会产生"需要Google Chrome开发频道或更高版本"的错误(可能是因为该功能还不稳定)。

确实发现浏览源代码很奇怪,这两个权限可能是彼此的别名,但这可能是因为我不完全了解 Chromium 代码库。

chrome.app.window.create在最新版本的Chrome中确实支持布尔alwaysOnTop选项。该功能目前在大多数平台上处于测试版频道,其余平台上至少处于开发频道。