跳到主內容

Flutter桌面支援

關於Flutter對桌面應用支援的通用資訊。

Flutter提供編譯原生Windows、macOS或Linux桌面應用的支援。Flutter的桌面支援也擴充套件到外掛——您可以安裝支援Windows、macOS或Linux平臺的現有外掛,或者您可以建立自己的外掛。

建立新專案

#

您可以使用以下步驟建立具有桌面支援的新專案。

設定桌面devtools

#

參考您目標桌面環境的指南

如果flutter doctor 發現某個您不想開發的平臺的錯誤或缺失元件,您可以忽略這些警告。或者,您可以使用flutter config命令完全停用該平臺,例如

flutter config --no-enable-ios

其他可用標誌

  • --no-enable-windows-desktop
  • --no-enable-linux-desktop
  • --no-enable-macos-desktop
  • --no-enable-web
  • --no-enable-android
  • --no-enable-ios

啟用桌面支援後,請重新啟動您的IDE,以便它可以檢測到新裝置。

建立並執行

#

使用桌面支援建立新專案與建立新的Flutter專案用於其他平臺沒有區別。

配置好桌面支援環境後,您可以從IDE或命令列建立並執行桌面應用程式。

使用IDE

#

在配置好環境以支援桌面後,請確保在IDE已經執行的情況下重新啟動它。

在您的IDE中建立一個新應用程式,它會自動建立iOS、Android、Web和桌面版本的應用程式。從裝置下拉選單中,選擇windows (desktop)macOS (desktop)linux (desktop),然後執行您的應用程式,以在桌面上看到它啟動。

從命令列

#

要建立一個包含桌面支援(以及移動和Web支援)的新應用程式,請執行以下命令,將my_app替換為您的專案名稱

flutter create my_app
cd my_app

要從命令列啟動您的應用程式,請輸入以下命令之一,從包的頂部開始

C:\> flutter run -d windows
flutter run -d macos
flutter run -d linux

構建釋出版應用

#

要生成釋出版本,請執行以下命令之一

PS C:\> flutter build windows
flutter build macos
flutter build linux

將桌面支援新增到現有的Flutter應用

#

要將桌面支援新增到現有的Flutter專案,請在專案根目錄中的終端中執行以下命令

flutter create --platforms=windows,macos,linux .

這將向您現有的Flutter專案新增必要的桌面檔案和目錄。要僅新增特定的桌面平臺,請更改platforms列表以僅包含您想要新增的平臺。

外掛支援

#

Flutter在桌面上的支援使用和建立外掛。要使用支援桌面的外掛,請遵循使用包中的外掛步驟。Flutter會自動將必要的本機程式碼新增到您的專案中,就像任何其他平臺一樣。

編寫外掛

#

當您開始構建自己的外掛時,您需要牢記聯合(federation)。聯合是指定義幾個不同的包的能力,每個包針對不同的平臺集,組合成一個外掛,以便開發人員易於使用。例如,url_launcher的Windows實現實際上是url_launcher_windows,但Flutter開發人員只需將url_launcher包作為依賴項新增到他們的pubspec.yaml檔案中,構建過程就會根據目標平臺拉取正確的實現。聯合很有用,因為具有不同專業知識的不同團隊可以為不同的平臺構建外掛實現。只要與原始外掛作者協調,您就可以將新的平臺實現新增到pub.dev上的任何認可的聯合外掛中。

有關更多資訊,包括有關認可外掛的資訊,請參閱以下資源

示例

#

您可以將以下示例作為桌面應用程式執行,還可以下載和檢查原始碼以瞭解有關Flutter桌面支援的更多資訊。

Wonderous應用 執行應用 , 倉庫

一個展示應用,使用Flutter建立高度表現力的使用者介面。Wonderous專注於提供可訪問和高質量的使用者體驗,同時包含引人入勝的互動和新穎的動畫。要將Wonderous作為桌面應用程式執行,請克隆該專案並按照README中提供的說明進行操作。

Flokk 公告部落格 , 倉庫

一個Google聯絡人管理器,與GitHub和Twitter整合。它可以與您的Google帳戶同步,匯入您的聯絡人,並允許您管理它們。

Photo Search應用

一個構建為桌面應用程式的示例應用程式,它使用受桌面支援的外掛。