檔案處理程式
| 型別 | 陣列 |
|---|
file_handlers 成員指定一個物件陣列,表示已安裝的 漸進式 Web 應用 (PWA) 可以處理的檔案型別。
瀏覽器在安裝 PWA 時讀取 file_handlers 成員,並將其用於將應用程式與作業系統級別上的給定檔案型別集關聯起來。
例如,可以將 PWA 註冊為處理與 text/plain MIME 型別 匹配的檔案。安裝此 PWA 後,作業系統能夠使用它來處理文字檔案,在使用者開啟此型別檔案時開啟 PWA。請注意,其他應用程式也可能被註冊為文字檔案處理程式,並且作業系統管理檔案型別與應用程式之間關聯的方式,以及它們讓使用者選擇處理給定檔案的應用程式的方式,可能會因裝置而異。
注意:雖然 file_handlers 成員用於將 PWA 註冊到給定檔案型別集,但這隻會導致作業系統在開啟匹配檔案時啟動 PWA。然後,PWA 需要使用 JavaScript 程式碼實際處理檔案。有關詳細資訊,請參閱 處理檔案。
值
示例
在此示例中,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-member |
瀏覽器相容性
BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。