处理指向 PWA 的链接

设备作系统上的渐进式 Web 应用 (PWA) 可以处理链接,以便在激活关联的 URL 时,PWA 可以请求启动而不是 Web 浏览器,以创建更具吸引力的体验。

此链接处理方式类似于本机应用在许多作系统上处理链接的方式。

在满足以下任一条件时,安装 PWA 的作系统会自动启动 PWA,用于引用 PWA 范围内的内容的任何链接:

  • PWA 是从 Windows 上的 Microsoft 应用商店 安装的。
  • PWA 是使用 Microsoft Edge 安装的,Microsoft Edge 是设备上的默认浏览器。

自动链接处理无需任何代码即可正常工作,但最终用户可以选择退出自动链接处理。 选择退出自动链接处理:

  1. 在 Microsoft Edge 中,导航到 edge://apps

  2. 找到要禁用自动链接处理的 PWA,然后单击“ 详细信息”。

  3. 在“PWA 详细信息”页的“ 链接处理 ”部分下,单击切换按钮。

PWAmp 音乐播放器应用的 edge://apps 详细信息页,其中显示了链接处理切换按钮的位置

通过范围扩展,渐进式 Web 应用 (PWA) 可以捕获到域、子域或自身范围以外的路径的导航。 范围扩展允许依赖多个顶级域、多个子域或多个路径的 Web 应用显示为单个 Web 应用。

范围扩展对于使用多个域、子域或路径处理本地化的 PWA 等情况非常有用。

不使用范围扩展时的 PWA 范围

PWA 的清单定义 PWA 的范围是托管域的哪个部分,例如特定路径。 例如, www.contoso.com 域名可能具有在路径 www.contoso.com/app下定义的 PWA,其范围设置为 /app

在这种情况下,路径中的所有 www.contoso.com/app 网页都是 PWA 范围的一部分。 但是,如果不使用范围扩展,则以下网页不属于该 PWA 范围:

  • 不同域中的网页,例如 www.contoso.co.uk
  • 不同子域的网页,例如 bar.contoso.com
  • 位于不同路径的网页,例如 www.contoso.com/foo

将范围扩展到其他域、子域或路径

通过使用范围扩展,PWA 可以跨越其他域、子域或路径。 例如:

PWA 可以跨越以下顶级域:

  • contoso.com
  • contoso.co.uk
  • contoso.fr

PWA 可以跨越以下子域:

  • www.contoso.com
  • bar.contoso.com

PWA 可以跨越以下路径:

  • www.contoso.com/app
  • www.contoso.com/foo

scope_extensions Web 应用清单成员

Web scope_extensions 应用清单成员使 Web 应用能够将其范围扩展到其他源。

例如,此 Web 应用清单文件驻留在域 sample-app.com上,并将范围扩展到其他域 example.com

{
  "name": "Example app",
  "display": "standalone",
  "start_url": "/index.html",
  "scope_extensions": [
    {
      "type": "origin",
      "origin": "https://example.com"
    }
  ]
}

成员中列出的 scope_extensions 源必须通过托管名为 .well-known/web-app-origin-association的配置文件来确认它们与 Web 应用相关联。 配置文件必须列出 Web 应用的源。

例如,此 .well-known/web-app-origin-association 配置文件驻留在域 example.com上,并将 Web 应用的源列为域 sample-app.com

{
  "https://sample-app.com/": {
    "scope": "/"
  }
}

另请参阅:

另请参阅

MDN:

解释器: