Flutter 的 Web 支援
Flutter 在 Web 上可提供與移動裝置上相同的體驗。
透過結合 Dart 的可移植性、Web 平臺的強大功能、Flutter 框架的靈活性以及 WebAssembly 的高效能,您可以使用同一程式碼庫構建面向 iOS、Android 和瀏覽器的應用。Web 只是您應用的另一個裝置目標。
要開始使用,請訪問 使用 Flutter 構建 Web 應用。
由 WebAssembly 提供支援
#Dart 和 Flutter 可以編譯為 WebAssembly,這是一種二進位制指令格式,可在所有主要瀏覽器上實現快速的應用。
要了解使用 WebAssembly 的優勢,請觀看以下影片。
工作原理
#為 Flutter 新增 Web 支援涉及在標準瀏覽器 API 之上實現 Flutter 的核心繪圖層,此外,Dart 會被編譯為 JavaScript,而不是用於移動應用的 ARM 機器碼。透過結合使用 DOM、Canvas 和 WebAssembly,Flutter 可以在現代瀏覽器中提供可移植、高質量且高效能的使用者體驗。我們完全用 Dart 實現的核心繪圖層,並使用 Dart 最佳化的 JavaScript 編譯器將 Flutter 核心和框架以及您的應用程式編譯成單個、最小化的原始檔,可以部署到任何 Web 伺服器。

我可以構建哪些型別的應用?
#雖然您可以在 Web 上做很多事情,但 Flutter 的 Web 支援在以下場景中最具價值:
- 單頁應用
- Flutter 的 Web 支援可實現複雜、獨立的 Web 應用,這些應用具有豐富的圖形和互動式內容,可在各種裝置上觸達終端使用者。
- 現有移動應用
- Flutter 的 Web 支援為現有的 Flutter 移動應用提供了一個基於瀏覽器的交付模型。
目前並非所有 HTML 場景都非常適合 Flutter。例如,富文字、流程型、靜態內容(如部落格文章)受益於 Web 所圍繞的以文件為中心的模型,而不是像 Flutter 這樣的 UI 框架可以提供的以應用為中心的服務。但是,您可以使用 Flutter 將互動式體驗嵌入到這些網站中。
開始使用
#以下資源可以幫助您入門:
- 要為現有應用新增 Web 支援,或建立包含 Web 支援的新應用,請參閱 使用 Flutter 構建 Web 應用。
- 要了解 Flutter 的不同 Web 渲染器(CanvasKit 和 Skwasm),請參閱 Web 渲染器。
- 要了解如何建立響應式 Flutter 應用,請參閱 建立響應式應用。
- 要檢視常見問題和解答,請參閱 Web FAQ。
- 要檢視程式碼示例,請檢視 Flutter 的 Web 示例。
- 要觀看 Flutter Web 應用演示,請檢視 Wonderous 應用。
- 要了解如何部署 Web 應用,請參閱 準備 Web 釋出應用。
- 在主 Flutter 程式碼庫中報告問題。
- 您可以在 Discord 的 #help 頻道上聊天並提出與 Web 相關的問題,網址為 Discord。