当我将 Teams 生成的 URL 粘贴到浏览器(特别是 Chrome)中时,浏览器会询问我是在浏览器中还是在 Teams 外部应用程序中打开该链接。使这成为可能的背后机制是什么? Teams 安装在我的电脑上时是否会注册某种浏览器扩展?如何从浏览器调用随机应用程序并向其传递 URL?
本地应用程序向操作系统注册自定义 URI 方案。因此,应用程序可能会声明(在安装时)它可以打开
https://
方案,而不是使用带有 x-custom-protocol://
的 URI 进行 Web 浏览。
本地应用程序如何执行此操作的具体情况因平台(Windows、macOS、Android、iOS 等)而异,但当浏览器遇到它怀疑无法处理的“x-custom-protocol://”时,它会提供在外部应用程序中打开。
在 Windows 上的 Teams 案例中,当您安装 Teams 时,它会将
msteams://
注册为其 URI 方案(某些人称为“协议处理程序”),然后当浏览器遇到 msteams://
链接时,它会询问您是否要将其移交到已安装的 Teams 应用程序。