以下是您需要知晓的相关信息:
- 借助清单
id
属性,您可以为 PWA 指定唯一 ID。 - 借助
protocol_handlers
属性,您可以在安装时自动将 PWA 注册为协议处理程序。 - 借助优先级提示源站试用版,您可以为下载资源指定提取优先级。
- 您可以将 Chrome 版本强制设为 100,以测试代码对三位数版本号的响应方式。
- Chrome 开发者峰会的所有视频均已上线。
- 还有许多其他功能。
我是 Pete LePage,终于可以在摄影棚内拍摄了。我们来深入了解一下 Chrome 96 中面向开发者的新功能。
PWA 的清单 id
当用户安装 PWA 时,浏览器需要一种方法来唯一标识它。不过,直到最近,Web 应用清单规范都没有指定如何识别 PWA,而是由浏览器自行决定,这导致了不同的实现方式。在某些浏览器中,使用 start_url
;而在另一些浏览器中,使用清单文件的路径。
因此,如果更改这两个字段中的任一字段,都会破坏安装体验。现在,有一个新的可选 id
属性,可让您明确定义用于 PWA 的标识符。
将 id
属性添加到清单会移除对 start_url
或清单位置的依赖项,并允许更新这些字段。
{
...
id: "/?homescreen=1",
start_url: "/?homescreen=1",
...
}
从 Chrome 96 开始,基于 Chromium 的桌面浏览器支持 id
属性。移动设备(目前使用清单网址作为唯一 ID)的支持应该会在 2022 年上半年推出。
如果您已经在正式版中发布了 PWA,并且想要向清单中添加 id
,则需要使用浏览器分配的 ID。您可以在“开发者工具”的应用面板的清单窗格中找到 id
。
对于全新的 PWA,您可以将 id
设置为任何字符串值,但请注意,您日后将无法更改该值,因此请谨慎选择。
{
...
id: "SquooshApp",
start_url: "/?homescreen=1",
...
}
如需了解详情,请参阅使用 Web 应用清单 ID 属性唯一标识 PWA。
PWA 的网址协议处理程序
Web 应用可以使用 navigator.registerProtocolHandler()
注册为协议处理程序。例如,Gmail 可以注册 mailto
协议。然后,当用户点击带有 mailto:
前缀的链接时,Gmail 就会打开,让用户能够轻松发送电子邮件。
从 Chrome 96 开始,PWA 可以在安装过程中注册为协议处理程序。如需为 PWA 执行此操作,请将 protocol_handlers
属性添加到 Web 应用清单中,指定要处理的 protocol
以及点击时应打开的 url
。
...
"protocol_handlers": [
{
"protocol": "web+tea",
"url": "/tea?type=%s"
},
{
"protocol": "web+coffee",
"url": "/coffee?type=%s"
}
]
}
这里有一些限制,您不能随意注册任何协议,因此请参阅 PWA 的网址协议处理程序注册,了解完整详情以及如何使用 web+
语法创建自己的协议!
优先级提示(源站试用版)
当浏览器解析网页并开始发现和下载图片、脚本或 CSS 等资源时,会为这些资源分配提取优先级,以便尝试优化网页加载速度。浏览器在分配优先级方面非常出色,但在所有情况下都可能不是最佳选择。
优先级提示是一项实验性功能,从 Chrome 96 开始以源试用的形式提供,可帮助优化核心 Web 指标。借助 importance
属性,您可以为 CSS、字体、脚本、图片和 iframe 等资源类型指定优先级。
<!-- We don't want a high priority for this above-the-fold image -->
<img src="/not-important.svg" importance="low">
<!-- Initiate an early fetch for a resource, but de-prioritize it -->
<link rel="preload" href="/script.js" as="script" importance="low">
<script>
fetch('https://example.com/', {importance: 'high'})
.then(data => {
// Trigger a high priority fetch
});
</script>
例如,下面是 Google 机票页面。该背景图片就是 Largest Contentful Paint (LCP)。
我们来看看在有和没有优先级提示的情况下,它是如何加载的。将背景图片的优先级设为 high
后,LCP 从 2.6 秒降至 1.9 秒。
如需了解所有详细信息、如何注册参与源代码试用,以及一些示例来了解该 API 如何帮助您提升渲染性能,请参阅使用 Fetch Priority API 优化资源加载。
在 UA 字符串中模拟 Chrome 100
明年年初,我们将发布 Chrome 100,这是个三位数版本号。应检查用于检查版本号或解析 UA 字符串的所有代码,确保其能够处理三位数。
从 Chrome 96 开始,有一个新的标志 #force-major-version-to-100
,它会将当前版本号更改为 100,以便您确保一切都能按预期运行。
有关详情,请参阅在 User-Agent 字符串中将 Chrome 的主要版本强制设为 100。
Chrome 开发者峰会
Chrome 开发者峰会已圆满落幕。所有视频和内容均可在线观看。请访问 Chrome 开发者峰会网站。如果您错过了主题演讲或直播,请访问 Chrome 开发者 YouTube 频道上的 CDS 播放列表。
等等!
当然,还有许多其他功能。
- 返回/前进缓存(即
bfcache
)现已推出稳定版,使 Chrome 与 Firefox 和 Safari 保持一致。
深入阅读
本文仅介绍了一些主要亮点。如需了解 Chrome 96 中的其他变更,请点击以下链接。
- Chrome 开发者工具 (96) 中的新变化
- Chrome 96 弃用和移除的功能
- ChromeStatus.com 上有关 Chrome 96 的最新动态
- Chrome 96 中的 JavaScript 新变化
- Chromium 源代码库更改列表
- Chrome 发布日历
订阅
如需及时了解最新动态,请订阅 Chrome 开发者 YouTube 频道,这样每当我们发布新视频时,您就会收到电子邮件通知。
我是 Pete LePage,Chrome 97 发布后,我会立即为您介绍 Chrome 中的新变化!