啟動處理程式 API
啟動處理程式 API 允許開發者控制漸進式 Web 應用 (PWA) 的啟動方式——例如,它是否使用現有視窗或建立新視窗,以及如何處理應用的啟動目標 URL。
概念與用法
您可以透過在 Web 應用清單檔案中新增 launch_handler 欄位來指定應用的啟動行為。該欄位有一個子欄位 client_mode,其中包含一個字串值,指定應用應如何啟動和導航。例如:
{
"launch_handler": {
"client_mode": "focus-existing"
}
}
如果未指定,預設的 client_mode 值為 auto。可用值為:
focus-existing-
將選擇最近與 Web 應用視窗中的瀏覽上下文進行互動的上下文來處理啟動。這會將啟動目標 URL 填充到傳遞給
window.launchQueue.setConsumer()回撥函式的LaunchParams物件的targetURL屬性中。正如您將在下面看到的,這允許您為您的應用設定自定義的啟動處理功能。 -
將最近與 Web 應用視窗中的瀏覽上下文進行互動的上下文導航到啟動目標 URL。目標 URL 仍可透過
window.launchQueue.setConsumer()訪問,以便實現額外的自定義啟動導航處理。 -
在 Web 應用視窗中建立一個新的瀏覽上下文來載入啟動目標 URL。目標 URL 仍可透過
window.launchQueue.setConsumer()訪問,以便實現額外的自定義啟動導航處理。 auto-
使用者代理決定最適合平臺的行為。例如,在移動裝置上,
navigate-existing可能更合適,因為單例項應用很常見,而在桌面環境中,navigate-new可能更合適。如果提供了無效值,則使用此預設值。
當使用 focus-existing 時,您可以在 window.launchQueue.setConsumer() 的回撥函式中包含程式碼,以提供對 targetURL 的自定義處理。
window.launchQueue.setConsumer((launchParams) => {
// Do something with launchParams.targetURL
});
注意: LaunchParams 還有一個 LaunchParams.files 屬性,它返回一個只讀的 FileSystemHandle 物件陣列,表示透過 POST 方法隨啟動導航一起傳遞的任何檔案。這允許實現自定義檔案處理。
介面
LaunchParams-
在 PWA 中實現自定義啟動導航處理時使用。當呼叫
window.launchQueue.setConsumer()來設定啟動導航處理功能時,setConsumer()中的回撥函式將接收一個LaunchParams物件例項。 LaunchQueue-
當使用
focus-existing、navigate-new或navigate-existing的launch_handlerclient_mode值啟動漸進式 Web 應用 (PWA) 時,LaunchQueue提供對功能的訪問,該功能允許在 PWA 中實現自定義啟動導航處理。此功能由傳遞給setConsumer()回撥函式的LaunchParams物件的屬性控制。
其他介面的擴充套件
window.launchQueue-
提供對
LaunchQueue類的訪問,該類允許在漸進式 Web 應用 (PWA) 中實現自定義啟動導航處理,其處理上下文由launch_handler清單欄位client_mode值表示。
示例
if ("launchQueue" in window) {
window.launchQueue.setConsumer((launchParams) => {
if (launchParams.targetURL) {
const params = new URL(launchParams.targetURL).searchParams;
// Assuming a music player app that gets a track passed to it to be played
const track = params.get("track");
if (track) {
audio.src = track;
title.textContent = new URL(track).pathname.slice(1);
audio.play();
}
}
});
}
此程式碼包含在 PWA 中,並在應用載入時、啟動時執行。window.launchQueue.setConsumer() 的回撥函式從 LaunchParams.targetURL 中提取搜尋引數,如果找到 track 引數,則使用它來填充 <audio> 元素的 src 並播放該元素指向的音訊軌道。
有關完整的可執行程式碼,請參閱 Musicr 2.0 演示應用。
規範
| 規範 |
|---|
| Web 應用啟動處理程式 API # launchqueue-interface |
瀏覽器相容性
載入中…