Flutter Desktop Embedding使用 Flutter 開發(fā)跨平臺(tái)桌面應(yīng)用
Flutter Desktop Embedding 是谷歌官方推出的一個(gè)兼容庫,可將 Flutter 框架的 API 用于開發(fā)跨平臺(tái)的桌面應(yīng)用。
按文檔的說法,只要把手機(jī)應(yīng)用的源碼改改,就能編譯成桌面應(yīng)用。此項(xiàng)目的目的是支持在 Windows,macOS 和 Linux上構(gòu)建使用 Flutter 開發(fā)的應(yīng)用程序。
它提供的 Flutter API,可處理繪圖和鼠標(biāo)/鍵盤輸入的庫,以及用于訪問其他原生平臺(tái)功能的可選插件。
如何使用本規(guī)范
配置
此項(xiàng)目的工具和構(gòu)建基礎(chǔ)結(jié)構(gòu)要求您在與此項(xiàng)目的克隆相同的父目錄中具有Flutter樹:
<parent dir> ├─ flutter (from http://github.com/flutter/flutter) └─ flutter-desktop-embedding (from https://github.com/google/flutter-desktop-embedding)
或者,您可以將.flutter_location_config文件放在包含flutter-desktop-embedding的目錄中,如果您不想在flutter-desktop-emebbing旁邊放置Flutter樹,則該文件包含要使用的Flutter樹的路徑。
存儲(chǔ)庫結(jié)構(gòu)
該library目錄包含核心嵌入庫代碼。有關(guān)構(gòu)建和使用它的信息,請參閱那里的 README。
該example目錄包含使用每個(gè)平臺(tái)的庫構(gòu)建的示例應(yīng)用程序。如果您只想看到正在運(yùn)行的內(nèi)容,或者想要查看如何使用該庫的示例,請從那里開始。
此外,還有:
plugins:插件,提供對(duì)其他平臺(tái)功能的訪問。它們遵循與Flutter插件類似的結(jié)構(gòu)。有關(guān)詳細(xì)信息,請參閱 自述文件third_party:此存儲(chǔ)庫使用的依賴關(guān)系,超出了Flutter本身。tools:開發(fā)過程中使用的工具。目前這些由構(gòu)建系統(tǒng)使用,但是在將來flutter可以添加提供與該工具類似的一些功能的開發(fā)者實(shí)用程序。
Flutter 應(yīng)用
要求
由于桌面版本不是Flutter支持的平臺(tái),因此請務(wù)必閱讀 Flutter應(yīng)用程序需求文檔,以獲取有關(guān)如何設(shè)置Flutter應(yīng)用程序以與此庫一起使用的重要信息。
調(diào)試
可以調(diào)試桌面應(yīng)用程序的Flutter端,但需要 修改工作流程。
反饋和討論
對(duì)于錯(cuò)誤報(bào)告和特定功能請求,您可以提交GitHub問題。對(duì)于一般性討論和問題,有一個(gè)項(xiàng)目郵件列表。
在提交與構(gòu)建錯(cuò)誤或其他錯(cuò)誤相關(guān)的問題時(shí),請確保包含您正在使用的Flutter結(jié)帳的git哈希。這有助于加快調(diào)試過程。
注意事項(xiàng)
這不是官方支持的Google產(chǎn)品。
這是一項(xiàng)探索性工作,并不屬于Flutter項(xiàng)目的一部分。有關(guān)Flutter 在桌面開發(fā)方面的官方立場,請參閱 Flutter常見問題解答。
許多對(duì)桌面開發(fā)有用的功能尚不存在。檢查
plugins目錄以獲取除繪圖和事件處理之外的本機(jī)功能的支持。如果您需要的功能不存在,請?zhí)峤还δ苷埱蠡?a data-cke-saved- >編寫插件!Linux和Windows實(shí)現(xiàn)目前使用GLFW。這不是任何一個(gè)平臺(tái)的最終實(shí)現(xiàn)。
