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 成員 |
瀏覽器相容性
載入中…