file_handlers
file_handlers
成员指定一个对象数组,代表已安装的渐进式 Web 应用 (PWA) 可以处理的文件类型。
浏览器在安装 PWA 时会读取 file_handlers
成员,并用它在操作系统层面将应用程序与一组指定的文件类型关联起来。
例如,PWA 可以注册以处理匹配 text/plain
MIME 类型的文件。一旦安装了此 PWA,操作系统就可以使用它来处理文本文件,当用户打开此类文件时,将启动 PWA。请注意,其他应用程序也可能注册为文本文件处理程序,并且操作系统管理文件类型与应用程序之间关联的方式,以及它们允许用户选择处理给定文件的应用程序的方式,可能因设备而异。
注意:虽然 file_handlers
成员用于将 PWA 与一组指定的文件类型注册,但这只会导致操作系统在打开匹配文件时启动 PWA。然后,PWA 需要使用 JavaScript 代码实际处理该文件。有关更多信息,请参阅处理文件。
值
一个对象数组。数组中的每个对象都必须包含以下值(action
和 accept
是必需的)
示例
在此示例中,Web 应用清单声明了一个文件处理程序,该处理程序将应用程序注册为处理音频文件。出于简洁性考虑,此示例未包含 name
或 icons
等其他清单成员。
json
{
"file_handlers": [
{
"action": "/handle-audio-file",
"accept": {
"audio/wav": [".wav"],
"audio/x-wav": [".wav"],
"audio/mpeg": [".mp3"],
"audio/mp4": [".mp4"],
"audio/aac": [".adts"],
"audio/ogg": [".ogg"],
"application/ogg": [".ogg"],
"audio/webm": [".webm"],
"audio/flac": [".flac"],
"audio/mid": [".rmi", ".mid"]
}
}
]
}
处理文件
为了在 PWA 中实际实现文件处理,Web 开发人员还需要使用 window.launchQueue
在其应用程序 JavaScript 代码中处理传入的文件。
文件处理是在应用程序代码的主线程上进行的,而不是在应用程序的服务工作线程中进行的。
在以下示例中,window.launchQueue.setConsumer()
用于指定一个回调函数,该函数接收传入的音频文件,并使用 Audio
元素播放第一个文件。
js
async function playSong(handledFile) {
const blob = await handledFile.getFile();
const url = window.URL.createObjectURL(blob);
const audio = new Audio(url);
audio.play();
}
if ("launchQueue" in window) {
window.launchQueue.setConsumer((launchParams) => {
if (launchParams.files && launchParams.files.length) {
playSong(launchParams.files[0]);
}
});
}
规范
规范 |
---|
清单孵化 # file_handlers 成员 |
浏览器兼容性
加载中…