在 Chrome 76 中,我們新增了:
prefers-color-scheme
媒體查詢,可為網站提供深色模式。- 網址列中的安裝按鈕:可讓使用者更輕鬆地在電腦上安裝漸進式網頁應用程式。
- 防止小型資訊列在行動裝置上的漸進式網頁應用程式中顯示。
- 更頻繁的 WebAPK 更新。
- 還有更多功能。
我是 Pete LePage,讓我們一起來看看 Chrome 76 版為開發人員帶來哪些新功能!
PWA Omnibox 安裝按鈕
在 Chrome 76 中,我們在網址列 (有時稱為萬用途方塊) 中加入安裝按鈕,讓使用者更輕鬆地在電腦上安裝漸進式網頁應用程式。
如果您的網站符合漸進式網頁應用程式安裝條件,Chrome 會在網址列中顯示安裝按鈕,讓使用者知道可以安裝您的 PWA。如果使用者按下安裝按鈕,系統會在 beforeinstallprompt
事件上呼叫 prompt()
,這基本上與顯示安裝對話方塊相同,方便使用者安裝 PWA。
如需完整詳細資料,請參閱「在電腦上安裝漸進式網頁應用程式的網址列」。
進一步控管 PWA 迷你資訊列
在行動裝置上,如果網站符合漸進式網頁應用程式可安裝性標準,Chrome 會在使用者首次造訪網站時顯示迷你資訊列。您曾表示希望能避免迷你資訊列顯示,並提供自有的安裝促銷活動。
自 Chrome 76 版起,在 beforeinstallprompt
事件上呼叫 preventDefault()
會停止顯示迷你資訊列。
window.addEventListener('beforeinstallprompt', (e) => {
// Don't show mini-infobar
e.preventDefault();
// Stash the event so it can be triggered later.
deferredPrompt = e;
// Update UI to promote PWA installation
pwaInstallAvailable(true);
});
請務必更新使用者介面,讓使用者知道可安裝您的 PWA。請參閱「促進 PWA 安裝的模式」,瞭解我們建議的促進漸進式網頁應用程式安裝作業的最佳做法。
加快 WebAPK 更新速度
在 Android 上安裝漸進式網頁應用程式時,Chrome 會自動要求並安裝網頁 APK。安裝完成後,Chrome 會定期檢查網頁應用程式資訊清單是否已變更 (例如更新圖示、顏色或變更應用程式名稱),確認是否需要使用新的 WebAPK。
從 Chrome 76 開始,Chrome 會更頻繁地檢查資訊清單,每天檢查一次,而非每三天檢查一次。如有任何主要屬性有所變更,Chrome 將要求並安裝新的 WebAPK,確保名稱、圖示和其他屬性均是最新狀態。
詳情請參閱「更頻繁更新 WebAPK」。
深色模式
許多作業系統現在都支援深色模式或深色主題。
prefers-color-scheme
媒體查詢可讓您調整網站的外觀和風格,以符合使用者偏好的模式。
@media (prefers-color-scheme: dark) {
body {
background-color: black;
color: white;
}
}
Tom 在 web.dev 上有篇很棒的文章「Hello darkness, my old friend」,其中包含您需要瞭解的一切資訊,以及如何建構樣式表單以支援淺色和深色模式的訣竅。
還有更多獎品等著您!
當然,這只是 Chrome 76 中針對開發人員所做的部分變更,還有更多變更。
Promise.allSettled()
就我個人而言,我非常期待 Promise.allSettled()
。這與 Promise.all()
類似,但會等到所有承諾都解決後才傳回。
const promises = [
fetch('/api-call-1'),
fetch('/api-call-2'),
fetch('/api-call-3'),
];
// Imagine some of these requests fail, and some succeed.
await Promise.allSettled(promises);
// All API calls have finished (either failed or succeeded).
讀取 Blob 更容易
Blob
可透過三種新方法 (text()
、arrayBuffer()
和 stream()
) 更輕鬆地讀取,這表示我們不再需要在檔案讀取器周圍建立包裝函式!
// New easier way
const text = await blob.text();
const aBuff = await blob.arrayBuffer();
const stream = await blob.stream();
// Old, wrapped reader
return new Promise((resolve) => {
const reader = new FileReader();
reader.addEventListener('loadend', (e) => {
const text = e.srcElement.result;
resolve(text);
});
reader.readAsText(file);
});
非同步剪貼簿 API 中的圖片支援
此外,我們也新增了圖片對非同步剪貼簿 API 的支援,讓您可以輕鬆以程式輔助方式複製及貼上圖片。
延伸閱讀
這篇文章只涵蓋部分重點,請參閱下方連結,瞭解 Chrome 76 的其他變更。
- Chrome 開發人員工具 (76 版) 的新功能
- Chrome 76 淘汰與移除項目
- Chrome 76 適用的 ChromeStatus.com 更新
- Chrome 76 的 JavaScript 新功能
- Chromium 來源存放區變更清單
訂閱
如要隨時掌握最新影片,請訂閱 Chrome 開發人員 YouTube 頻道,這樣一來,我們發布新影片時,你就會收到電子郵件通知。
我是 Pete LePage,每當 Chrome 77 推出時,我就會立即 向大家說明 Chrome 的新功能!