代码之家  ›  专栏  ›  技术社区  ›  Fez Vrasta

从Chrome扩展从Chrome打开PWA框架窗口

  •  0
  • Fez Vrasta  · 技术社区  · 3 年前

    我有一个PWA,当我使用打开辅助窗口时,它能够打开它们 window.open 新窗口具有与主PWA相同的窗口样式(没有Chrome UI,没有选项卡,没有地址栏,没有我的应用程序定义的颜色的状态栏),新窗口也将分组在操作系统Dock/任务栏中的PWA图标下。

    窗口的外观如下图所示:

    enter image description here

    我还有一个Chrome扩展,它必须能够打开这样的窗口,但我遇到的问题是,如果我使用 chrome.windows.create 具有 popup 键入,则生成的窗口具有正常的Chrome状态栏颜色,并且它们不会列在PWA图标下。这样地:

    enter image description here

    我想知道是否有任何方法可以从Chrome扩展打开一个窗口,并让它遵循PWA定义的主题,并在PWA停靠/任务栏图标下列出?

    0 回复  |  直到 3 年前
        1
  •  1
  •   woxxom    3 年前

    要启动已安装的PWA,请使用 chrome.management 扩展页或后台脚本中的API:

    chrome.management.getAll(apps => {
      const pwa = apps.find(a => a.appLaunchUrl === 'https://pwa.foo.bar/');
      if (pwa) chrome.management.launchApp(pwa.id);
    });
    

    如果要设置 launch type :

    chrome.management.getAll(apps => {
      for (const a of apps) {
        if (a.appLaunchUrl === 'https://pwa.foo.bar/') {
          chrome.management.setLaunchType(a.id, 'OPEN_AS_WINDOW', () => {
            chrome.management.launchApp(a.id);
          });
          break;
        }
      }
    });
    

    manifest.json:

    {
      "permissions": ["management"],