以下是您需要知晓的相关信息:
- 与文件交互的 Web 应用现在可以在使用 File System Access API 时提供文件名和目录建议。
- 您可以读取剪贴板中的文件。
- 如果您的网站有多个网域,并且这些网域共享同一个账号管理后端,您可以告知 Chrome 它们是相同的,以便密码管理器提供正确的凭据建议。
- 您可以观看 Chrome 开发者 YouTube 频道,观看 I/O 大会上的所有视频!
- 还有许多其他功能。
我是 Pete LePage,目前在家办公和录制视频。我们来深入了解一下 Chrome 91 中面向开发者的新功能吧!
File System Access API 的建议名称
今年,Fugu 项目推出了许多 API,其中我最喜欢的 API 之一就是文件系统访问 API。用户授予权限后,应用便可与用户本地设备上的文件进行交互,就像其他已安装的应用一样,从而让您能够打造更自然的用户体验。
从 Chrome 91 开始,您现在可以建议要与之互动的文件或目录的名称和位置。为此,请将 suggestedName
属性作为 showSaveFilePicker
选项的一部分传递。
const fileHandle = await self.showSaveFilePicker({
suggestedName: 'Untitled Text.txt',
types: [{
description: 'Text documents',
accept: {
'text/plain': ['.txt'],
},
}],
});
默认的起始目录也是如此。例如,文本编辑器可能想要在 documents
文件夹中启动“文件保存”或“文件打开”对话框。而图片编辑器可能希望从 pictures
文件夹开始。您可以通过传递 startIn
属性来建议默认的起始目录。
const fileHandle = await self.showOpenFilePicker({
startIn: 'documents'
});
如需了解完整详情,请参阅 Tom 的文件系统访问一文。
从剪贴板读取文件
Chrome 91 中还有一个用于与文件交互的其他很酷的新 API。在桌面设备上,Web 应用现在可以从剪贴板读取文件。(从剪贴板读取文件的功能自 2018 年起已在 Safari 中提供。)
当然,您无法对剪贴板拥有不受限制的访问权限,因此需要设置 paste
事件监听器。然后,在事件处理脚本中,您可以访问剪贴板上每个文件的内容。
window.addEventListener('paste', onPaste);
async function onPaste(e) {
const file = e.clipboardData.files[0];
const contents = await file.text();
...
}
在关联的网站上共享凭据
如果您的网站有多个网域,并且它们共用相同的账号管理后端,您现在可以将这些网站相互关联,让用户只需保存一次凭据,Chrome 密码管理工具便会在用户访问任何关联网站时向其显示这些凭据。
当您的网站由不同的顶级网域(例如 google.com
和 google.ca
)提供时,这是理想之选。或者,您可能拥有多个域名。
如需关联您的网站,您需要创建一个 assetlinks.json
文件,用于定义网域之间的关系。在下面的示例中,我会告知浏览器 .com
和 .co.uk
网域相关且可以共享凭据。
[{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://www.example.com"
}
},
{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://www.example.co.uk"
}
}]
然后,将 assetlinks.json
文件托管在每个网域的 .well-known
文件夹中。
此功能将从 Chrome 91 开始逐步推出,可能不会在发布当天就推出,因此请参阅让 Chrome 在关联的网站之间共享登录凭据,了解最新详情。
等等!
当然,还有许多其他功能。
2021 年 I/O 大会的所有视频现已上线,其中包含一些精彩的内容,敬请观看!
Web Transport(以前称为 Quic Transport)已发生多项更改,并将开始新的源代码试用。
Web Assembly SIMD 已完成源代码试用,面向所有用户提供。
经过刷新的表单元素终于在 Android 上推出,从而提升了用户体验。
系统会为 link rel="icon"
使用 <link>
元素的 media
属性,这意味着您可以根据媒体查询定义不同的图标。例如,为深色模式和浅色模式提供不同的图标。
<link
rel="icon"
media="(prefers-color-scheme: dark)"
href="/icons/dark.png">
<link
rel="icon"
media="(prefers-color-scheme: light)"
href="/icons/light.png">
深入阅读
本文仅介绍了一些主要亮点。如需了解 Chrome 91 中的其他变更,请参阅以下链接。
- Chrome 开发者工具 (91) 中的新变化
- Chrome 91 弃用和移除的功能
- Chrome 91 的 ChromeStatus.com 更新
- Chrome 91 中的 JavaScript 新变化
- Chromium 源代码库更改列表
订阅
如需及时了解最新动态,请订阅 Chrome 开发者 YouTube 频道,这样每当我们发布新视频时,您就会收到电子邮件通知。
我叫 Pete LePage,待 Chrome 92 发布后,我会随时为您介绍 Chrome 的新功能!