为 Chrome/Chromium 桌面应用设置自定义 URL

为 Chrome/Chromium 桌面应用设置自定义 URL

您可以创建 Chrome 应用,在一个干净的窗口中打开一个网站,而无需所有的浏览器控件,就好像它是该网站的独立应用一样,只需打开所需的网站,然后执行以下操作:

-> More tools-> Create shortcut...-> 检查☑ Open as Window

但是这将使用当前 URL 并且您不能指定自定义 URL。

就我而言,我想将 Microsoft Teams 网络版添加为 Chrome 应用,但登录后团队会直接重定向到最后一次对话。

因此,https://teams.microsoft.com/_#/URL 不是类似于以下内容的 URL,随后将用作 Chrome App URL。https://teams.microsoft.com/_#/conversations/General?threadId=19:[email protected]&ctx=channel

这是不可取的,因为我不希望特定的(旧的)对话成为默认对话。

有没有办法为 Chrome 应用设置自定义 URL?

答案1

我发现最好的方法是在创建快捷方式之前更改 URL。

您可以使用 Chrome Devtools 和history控制台中的对象来执行此操作。

例如,假设我想要一个快捷方式https://www.messenger.com。问题是,当我登录 Messenger 时,该确切 URL 始终会转发到与我的热门聊天相关联的 URL。

在 Chrome Devtools 中,我可以粘贴history.pushState({}, "", "/"),然后 URL 将更改为https://www.messenger.com。然后我可以创建 Chrome 快捷方式,它将使用该 URL。

您可以更改第三个参数,使 URL 相对于域名成为您想要的任何内容。例如,history.pushState({}, "", "/t/threadname")将使 Chrome 快捷方式成为https://www.messenger.com/t/threadname

答案2

我遇到了完全相同的问题。对我有用的是使用相同的过程创建 Chrome (Brave) 应用程序并转到快捷方式的配置文件。可以在 (C:\Users<account>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Brave Apps) 中找到该快捷方式,我转到属性并进入目标,而不是 --app-id=""。我将其更改为--app="<URL>"。现在它将像应用程序一样在新窗口中打开我的自定义 URL(没有地址栏和工具栏)。

答案3

在创建快捷方式之前运行类似这样的 JS:

const startUrl = 'https://calendar.google.com/calendar/u/1/r';
document.head
  .querySelector(':first-child')
  .insertAdjacentHTML(
    'beforebegin',
    `<link rel="manifest" href='data:application/manifest+json,{"start_url":"${startUrl}"}' />`,
  );

或者在这里查看替代方案

https://apple.stackexchange.com/questions/390799/how-to-change-the-url-of-a-chrome-app-shortcut/399458#399458

答案4

您可以--app-launch-url-for-shortcuts-menu-item使用自定义 URL。

例如,在 之后--app-id=xxx添加--app-launch-url-for-shortcuts-menu-item="https://teams.microsoft.com/_#/"

正如解释的那样这个stackoverflow答案

相关内容