Project Fugu "done" 專案

Project Fugu 團隊的目標是讓開發人員可以在網站上執行任何平台專屬應用程式,因此團隊一直忙於新增缺少的功能,協助網頁程式開發人員填補不足之處。如果你不相信我,只要查看 Fugu API 追蹤程式的「已出貨」部分即可。以下是 55 個出貨的 API,按最近出貨順序由低到高排序:

API 名稱 已出貨
Web Bluetooth APIChrome 56
WebUSB APIChrome 61
網頁分享目標Chrome 71
Web Share API 級別 2Chrome 75
非同步剪貼簿:讀取及寫入圖片Chrome 76
網頁分享目標層級 2Chrome 76
輸入按鍵提示Chrome 77
增加儲存空間配額Chrome 78
取得已安裝相關的 Apps APIChrome 80
定期在背景同步處理Chrome 80
desktop-pwas:支援「minimal-ui」顯示模式Chrome 80
壓縮轉碼器Chrome 80
Contacts APIChrome 80
Badging APIChrome 81
允許透過推送功能從 Service Worker 使用 Badging APIChrome 81
條碼偵測 APIChrome 83
Content Indexing APIChrome 84
WebOTPChrome 84
螢幕 Wake Lock APIChrome 84
Streams API:可轉移的串流Chrome 85
應用程式捷徑Chrome 85
檔案系統存取權Chrome 86
text/html 支援非同步剪貼簿 APIChrome 86
相機的平移/傾斜支援Chrome 87
FUGU 將系統和應用程式音訊輸出至耳機和喇叭實作 Chrome 88
PointerLock 未調整移動Chrome 88
建立相片/影片挑選工具,方式與 Android 裝置上的相片挑選工具類似Chrome 88
與 Windows 10 整合 Web Share (navigator.share)Chrome 88
網路 NFCChrome 89
WebHID (人機介面裝置)Chrome 89
Web Serial APIChrome 89
在電腦上分享網頁分享Chrome 89
手寫辨識 APIChrome 90
網頁應用程式的受管理設定Chrome 91
在 OS 登入時執行 PWAChrome 91
WebCodecsChrome 93
閒置偵測Chrome 94
EyeDropper APIChrome 95
macOS 和 Linux 中 PWA 的應用程式捷徑選單Chrome 96
PWA 的網址通訊協定處理常式註冊 Chrome 96
WebTransportChrome 97
剪貼簿:貼上 Retina 圖片會失去 pHY 中繼資料。Chrome 98
PWA 應與「實際應用程式」的解除安裝方式相同Chrome 99
網路 NFC:NDEFReader makeReadOnly()Chrome 100
多螢幕視窗位置Chrome 100
HIDDeviceforgot()Chrome 100
USBDevice remember()Chrome 指南
網路 USB sameObject 行為Chrome 指南
已安裝的電腦版網頁應用程式的視窗控制項重疊顯示效果Chrome 指南
檔案處理Chrome 指南
chrome.management API 無法再與 PWA 應用程式互動Chrome 指南
SerialPortforgot()Chrome 103
本機字型存取權Chrome 103
錯誤要求:動態應用程式捷徑 (捷徑 v2)Chrome 104
Async Clipboard API 的網路自訂格式Chrome 104
目前所有已出貨的 Fugu API。

這份清單很長,而且盤子中還有更多東西。目前仍有開發人員試用的 API 和功能 (也就是已實作,但仍在功能旗標之後),有些已經開始開發,也有許多需要考慮的 API 和功能。如您所見,現在該放鬆一下,表示我們已完成工作。

來源私人檔案系統的同步檔案方法

相反地,我們其實是剛起步,而不是宣告我們所做的努力。舉例來說,下方圖表顯示的是 navigator.storage.getDirectory() 方法的大幅增加相對用量成長,可做為來源私人檔案系統 (OPFS) 的進入點。例如,這種方法適用於 Photoshop 的高效能儲存空間需求,以及自 Web SQL 開始淘汰後 (甚至之前) 後,儲存空間社群非常感興趣

顯示 navigator.storage.getDirectory 方法快速增加的圖表。

現在 OPFS 的使用人數越來越多,相關要求也出現了。例如,在工作站結構定義中需要一套完全同步的檔案方法 (如需背景檔案,請參閱 whatwg/fs#7)。雖然新的 Web API 通常為非同步性質,但採用同步方法可以讓 Wasm 環境中的 OPFS 更加簡單,而且由於這是工作站中發生的問題,因此不會封鎖主執行緒。

改善硬體 API 的隱私權

另一個範例是硬體 API,可讓您連線至 HIDserialUSB藍牙NFC 裝置。儘管部分 API 已推出一段時間,但直到近期無法忘記先前連線的裝置。現在,部分 API 採用了 forget() 方法。例如,以下說明如何清除先前連線的序列裝置,進而改善 API 的隱私性。

// Request a serial port.
const port = await navigator.serial.requestPort();
// Then later revoke permission to the serial port.
await port.forget();

多螢幕視窗放置 API 的修正功能

最後一個範例是 Multi-Screen Window Placement API。其中,根據開發人員的意見回饋,先前的一般畫面標籤 (例如 "Internal Display 1") 已替換為更有意義的標籤 (例如 "Built-in Retina Display"),以便使用者更輕鬆地將這些標籤與多螢幕設定的畫面建立關聯。

結論

正如這三個範例所示,Project Fugu 才能完成。繼續或開始使用我們的 API 並提供意見回饋由於所有 Fugu 規格均以 GitHub 公開的方式開發而成,因此您可以在對應的 GitHub 存放區提交規格問題,或是將您的想法加入現有問題中。如果您發現 Chrome 的實作錯誤,或發現實作方式與規格不同,請前往 new.crbug.com 回報錯誤。請務必盡可能提供更多詳細資料,並提供重現簡易的操作說明。

此外,如果您對瀏覽器支援有疑慮,許多 Fugu API 都有助於改進效能。請參閱「可擴充向量圖形程式碼:PWA 將光柵圖片轉換為 SVG 向量圖形」一文,尋找靈感。另外,除非這些 API 可以互通,否則我們不會將這項工作視為完成,且會繼續推動其他瀏覽器進一步標準化、測試及採用。