以下是一些注意事項:
- 已安裝的 PWA 可註冊為檔案處理常式,讓使用者輕鬆直接從磁碟開啟檔案。
inert
屬性可讓您將 DOM 的部分標示為無效。- Navigation API 可讓單頁應用程式更輕鬆地處理導覽和網址更新作業
- 還有許多其他功能。
我是 Pete LePage讓我們深入瞭解 Chrome 102 版為開發人員提供的新功能。
File Handling API
檔案處理 API 可讓已安裝的 PWA 向作業系統註冊為檔案處理程式。註冊完成後,使用者只要按一下檔案,即可透過已安裝的 PWA 開啟檔案。這非常適合與檔案互動的 PWA,例如圖片編輯器、IDE、文字編輯器等。
如要在 PWA 中新增檔案處理功能,您必須更新 Web 應用程式資訊清單,並新增 file_handlers
陣列,其中包含 PWA 可處理的檔案類型詳細資料。您需要指定要開啟的網址、MIME 類型、檔案類型的圖示和啟動類型。啟動類型會定義是否要在單一用戶端或多個用戶端中開啟多個檔案。
"file_handlers": [
{
"action": "/open-csv",
"accept": {"text/csv": [".csv"]},
"icons": [
{
"src": "csv-icon.png",
"sizes": "256x256",
"type": "image/png"
}
],
"launch_type": "single-client"
}
]
接著,如要在 PWA 啟動時存取這些檔案,您必須為 launchQueue
物件指定消費者。啟動作業會排入佇列,直到消費者處理為止。
// Access from Window.launchQueue.
launchQueue.setConsumer((launchParams) => {
if (!launchParams.files.length) {
// Nothing to do when the queue is empty.
return;
}
for (const fileHandle of launchParams.files) {
// Handle the file.
openFile(fileHandle);
}
});
詳情請參閱「讓已安裝的網頁應用程式成為檔案處理常式」。
inert
屬性
inert
屬性是全域 HTML 屬性,可指示瀏覽器忽略元素的使用者輸入事件,包括焦點事件和輔助技術事件。
這在建構 UI 時非常實用。舉例來說,如果使用模式對話方塊,您會希望在模式對話方塊可見時,將焦點「捕捉」在模式對話方塊內。或者,如果使用者無法隨時看到導覽匣,新增 inert
可確保導覽匣在畫面外時,鍵盤使用者不會不小心與其互動。
<div>
<label for="button1">Button 1</label>
<button id="button1">I am not inert</button>
</div>
<div inert>
<label for="button2">Button 2</label>
<button id="button2">I am inert</button>
</div>
在此情況下,inert
已在第二個 <div>
元素上宣告,因此其中包含的所有內容 (包括 <button>
和 <label>
) 都無法接收焦點或點選。
Chrome 102 支援 inert
,Firefox 和 Safari 也即將支援。
詳情請參閱「介紹 inert」。
Navigation API
許多網頁應用程式都需要能夠在不透過網頁導覽的情況下更新網址。目前我們使用的是 History API,但這項 API 使用起來相當笨重,而且不一定能正常運作。與其嘗試修補 History API 的缺點,不如讓 Navigation API 徹底改造這個空間。
如要使用 Navigation API,請在全域 navigation
物件上新增 navigate
監聽器。
navigation.addEventListener('navigate', (navigateEvent) => {
switch (navigateEvent.destination.url) {
case 'https://example.com/':
navigateEvent.transitionWhile(loadIndexPage());
break;
case 'https://example.com/cats':
navigateEvent.transitionWhile(loadCatsPage());
break;
}
});
事件在根本上是集中式,且會針對所有類型的導覽觸發,無論是使用者執行特定動作 (例如點選連結、提交表單,或是倒轉及向前/向後/向前/向前/向後/循環)。在大多數情況下,您可以讓程式碼覆寫瀏覽器針對該動作的預設行為。
如需完整詳細資料和試用示範,請參閱「新式用戶端導覽:Navigation API」。
還有更多獎品等著您!
當然,還有更多功能。
- 新的 Sanitizer API 旨在建構強大的處理器,以便將任意字串安全地插入網頁中。
hidden=until-found
屬性可讓瀏覽器在隱藏區域中搜尋文字,並在找到相符項目時顯示該區域。
延伸閱讀
這份文件僅涵蓋部分重點。請參閱下方連結,瞭解 Chrome 102 中的其他變更。
- Chrome 開發人員工具 (102) 的新功能
- Chrome 102 的淘汰和移除項目
- Chrome 102 的 ChromeStatus.com 更新
- Chromium 原始碼存放區變更清單
- Chrome 發布時程表
訂閱
如要隨時掌握最新消息,請訂閱 Chrome 開發人員 YouTube 頻道,這樣一來,我們發布新影片時,你就會收到電子郵件通知。
我是 Pete LePage,Chrome 103 一推出,我就會在這裡告訴你 Chrome 的新功能!