建構和釋出為 Web 應用

(例如)在典型的開發過程中,你可以在命令列使用 flutter run -d chrome 命令測試應用程式。這會構建出 debug 版本的應用。

本頁面會幫助你建構 release 版本的應用,其囊括瞭如下主題:

處理 Web 中的圖片

Web 支援標準的 Image widget 來顯示圖片。但是,由於 Web 瀏覽器需要安全地執行不受信任的程式碼,因此與移動和桌面平台相比,影象處理方面存在某些限制。

更多資訊,請參閱 在 Web 中展示圖片.

選擇 Web 渲染器

預設情況下,flutter buildflutter run 命令對 Web 渲染器使用 auto 引數。這意味著您的應用程式在移動瀏覽器上會與 HTML 渲染器一起執行,而在桌面瀏覽器上與 CanvasKit 一起執行。這是我們推薦的組合方式,能夠針對每個平台特性最佳化。

更多資訊,請參閱 Web 渲染器.

混淆並壓縮程式碼

當你建立了一個 release 版本時,便已經壓縮了程式碼。

Debug 模式建構的 Web 應用沒有被壓縮,且 Tree-shaking 沒有執行。

Profile 模式建構的 Web 應用沒有被壓縮,但 Tree-shaking 執行了。

Release 模式建構的 Web 應用被壓縮了,並且 Tree-shaking 執行了。

建構用於釋出的應用

使用 flutter build web 命令建構應用程式以進行部署。你也可以透過使用 --web-renderer 自行選擇渲染方式。(請檢視 網頁渲染器)這將產生包括資源的應用程式,並將檔案放入專案的 /build/web 目錄中。

一般的應用程式的 release 版本具有以下結構:

/build/web
  assets
    AssetManifest.json
    FontManifest.json
    NOTICES
    fonts
      MaterialIcons-Regular.ttf
      <other font files>
    <image files>
    packages
      cupertino_icons
        assets
          CupertinoIcons.ttf
    shaders
      ink_sparkle.frag
  canvaskit
    canvaskit.js
    canvaskit.wasm
    profiling
      canvaskit.js
      canvaskit.wasm
  favicon.png
  flutter.js
  flutter_service_worker.js
  index.html
  main.dart.js
  manifest.json
  version.json

啟動 Web 伺服器(例如,python -m SimpleHTTPServer 8000,或使用 dhttpd package),然後開啟 /build/web 目錄。在瀏覽器中存取 localhost:8000(前文用 Python 啟動的伺服器)以檢視應用程式的 release 版本。

將 Flutter 應用內嵌到一個 HTML 頁面裡

你可以使用 iframe 標籤將 Flutter web 應用內嵌到一個網頁裡。請參照下面的例子,將 URL 替換成實際的地址:

<iframe src="URL"></iframe>

部署到 Web 端

等你準備好部署應用時,將 release 包上傳到 Firebase、雲或者是類似服務上:

PWA Support

從 1.20 版開始,用於 Web 應用程式的 Flutter 範本包括了對可安裝且具有離線功能的 PWA 應用程式所需的核心功能的支援。基於 Flutter 的 PWA 的安裝方式與其他基於 Web 的 PWA 基本相同;由 manifest.json 提供的配置資訊可以宣告您的 Flutter 應用程式是 PWA,該檔案可以在 web 目錄中使用 Flutter create 命令產生。

對 PWA 的支援仍在進行中,因此,如果您發現不正確的地方,歡迎 給予我們反饋