设备作系统上的渐进式 Web 应用 (PWA) 可以处理链接,以便在激活关联的 URL 时,PWA 可以请求启动而不是 Web 浏览器,以创建更具吸引力的体验。
此链接处理方式类似于本机应用在许多作系统上处理链接的方式。
自动链接处理
在满足以下任一条件时,安装 PWA 的作系统会自动启动 PWA,用于引用 PWA 范围内的内容的任何链接:
- PWA 是从 Windows 上的 Microsoft 应用商店 安装的。
- PWA 是使用 Microsoft Edge 安装的,Microsoft Edge 是设备上的默认浏览器。
自动链接处理无需任何代码即可正常工作,但最终用户可以选择退出自动链接处理。 选择退出自动链接处理:
在 Microsoft Edge 中,导航到
edge://apps。找到要禁用自动链接处理的 PWA,然后单击“ 详细信息”。
在“PWA 详细信息”页的“ 链接处理 ”部分下,单击切换按钮。
使用范围扩展处理来自其他源的链接
通过范围扩展,渐进式 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.comcontoso.co.ukcontoso.fr
PWA 可以跨越以下子域:
www.contoso.combar.contoso.com
PWA 可以跨越以下路径:
www.contoso.com/appwww.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:
解释器:
- Web 应用清单的范围扩展
-
Web 应用链接处理清单选项 -
handle_links解释器。