Flutter開發(fā)-為項目添加Desktop桌面平臺支持

前言

我們都知道Flutter 的目標是:Run in any screen乐横!就目前已經(jīng)在iOS,AndroidWeb端都做到了很好的支持冒版。而目前對桌面端的支持绘雁,還沒有正式發(fā)布票彪。從目前的官網(wǎng)文檔上看,F(xiàn)lutter已經(jīng)支持了macOS,LinuxWindows平臺外莲,但目前的這部分功能還是在dev分支上,處于alpha階段猪半,依然沒有正式發(fā)布。本篇文章我們就使用Fultter-dev分支SDK嘗試創(chuàng)建桌面端項目偷线。

官方描述:
Warning: Alpha! This page covers desktop support, which is available as alpha-quality features in the Flutter dev channel. Support still has notable feature gaps, including accessibility support.

本篇文章磨确,我們就根據(jù)官方文檔的向?qū)В瓿蒑acOS平臺支持声邦。

環(huán)境配置

創(chuàng)建一個新的Fultter項目

打開終端,執(zhí)行如下命令

flutter channel dev
flutter upgrade
flutter config --enable-<platform>-desktop

這里的<platform>macoslinux,這里我們是macos

flutter config --enable-macos-desktop

檢測--enable-macos-desktop是否生效:

flutter devices
2 connected devices:

iPhone 8 (mobile) ? 31E81583-69D8-460B-90A1-14BC313D65AC ? ios  ? com.apple.CoreSimulator.SimRuntime.iOS-13-4
(simulator)
macOS (desktop)  ? macos  ? darwin-x64 ? Mac OS X 10.15.4 19E266

這里輸出了2個鏈接設備乏奥,其中一個為? macos,說明config操作成功。
這里需要注意的是:在以上操作完成之后亥曹,重新啟動你的IDE,這里我以Android Studio 為例邓了,在選擇設備的時候就可以看到一個macOS(desktop):

截屏2020-09-16 下午6.11.28.png

**創(chuàng)建項目并運行

flutter create myapp

此時我們會發(fā)現(xiàn)工程目錄中多了一個macos文件夾

截屏2020-09-16 下午6.20.13.png

MacOS上運行項目

flutter run -d macos

這里同樣可以通過IDE的方式運行,這里就不做舉例了媳瞪。
運行結(jié)果:


截屏2020-09-16 下午6.25.26.png

此時此刻骗炉,熟悉的頁面就展示在了面前!

在已有的項目中添加MacOS支持

通過終端進入到項目的根目錄蛇受,然后執(zhí)行以下操作

flutter create .

之后會出現(xiàn)如下輸出:

Recreating project ....                     
  macos/Runner.xcworkspace/contents.xcworkspacedata (created)
  macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (created)
  macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png (created)
  macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png (created)
  macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png (created)
  macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png (created)
  macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png (created)
  macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png (created)
  macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json (created)
  macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png (created)
  macos/Runner/DebugProfile.entitlements (created)
  macos/Runner/Base.lproj/MainMenu.xib (created)
  macos/Runner/MainFlutterWindow.swift (created)
  macos/Runner/Configs/Debug.xcconfig (created)
  macos/Runner/Configs/Release.xcconfig (created)
  macos/Runner/Configs/Warnings.xcconfig (created)
  macos/Runner/Configs/AppInfo.xcconfig (created)
  macos/Runner/AppDelegate.swift (created)
  macos/Runner/Info.plist (created)
  macos/Runner/Release.entitlements (created)
  macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (created)
  macos/Runner.xcodeproj/project.pbxproj (created)
  macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme (created)
  macos/Flutter/Flutter-Debug.xcconfig (created)
  macos/Flutter/Flutter-Release.xcconfig (created)
  macos/.gitignore (created)
Running "flutter pub get" in flutter_app...                         1.8s
Wrote 29 files.

All done!
[?] Flutter: is fully installed. (Channel dev, 1.22.0-12.0.pre, on Mac OS X 10.15.4 19E266, locale zh-Hans-CN)
[!] Android toolchain - develop for Android devices: is partially installed; more components are available. (Android
    SDK version 29.0.2)
[?] Xcode - develop for iOS and macOS: is fully installed. (Xcode 11.4.1)
[?] Android Studio: is fully installed. (version 3.4)
[?] VS Code: is fully installed. (version 1.45.1)
[?] Connected device: is fully installed. (2 available)

Run "flutter doctor" for information about installing additional components.

In order to run your application, type:

  $ cd .
  $ flutter run

Your application code is in ./lib/main.dart.

同樣的會在根目錄新增一個macos文件夾

zeze@localhost flutter_app % ls
README.md   build       images      lib     pubspec.lock    test
android     flutter_app.iml ios     macos       pubspec.yaml

同樣運行項目:


截屏2020-09-16 下午6.37.14.png

再次句葵,熟悉的界面又呈現(xiàn)在了眼前。

關于443錯誤信息

flutter: Another exception was thrown: SocketException: Connection failed (OS Error: Operation not permitted, errno = 1), address = randomuser.me, port = 443

關于這個錯誤,請移步蘋果開發(fā)者中心 App SandboxEntitlements查閱龙巨,類似于iOS的一些權限白名單笼呆,需要進行配置。

總結(jié)

非常期待Flutter 對桌面支持的 release發(fā)布旨别,早日實現(xiàn)Run in any screen!??
參考文獻:https://flutter.dev/desktop#add-desktop-support-to-an-existing-app

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末诗赌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子秸弛,更是在濱河造成了極大的恐慌铭若,老刑警劉巖洪碳,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異叼屠,居然都是意外死亡瞳腌,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門镜雨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嫂侍,“玉大人,你說我怎么就攤上這事荚坞√舫瑁” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵颓影,是天一觀的道長各淀。 經(jīng)常有香客問我,道長诡挂,這世上最難降的妖魔是什么碎浇? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮璃俗,結(jié)果婚禮上奴璃,老公的妹妹穿的比我還像新娘。我一直安慰自己城豁,他們只是感情好溺健,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著钮蛛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪剖膳。 梳的紋絲不亂的頭發(fā)上魏颓,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天,我揣著相機與錄音吱晒,去河邊找鬼甸饱。 笑死,一個胖子當著我的面吹牛仑濒,可吹牛的內(nèi)容都是我干的叹话。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼墩瞳,長吁一口氣:“原來是場噩夢啊……” “哼驼壶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起喉酌,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤热凹,失蹤者是張志新(化名)和其女友劉穎泵喘,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體般妙,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡纪铺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了碟渺。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鲜锚。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖苫拍,靈堂內(nèi)的尸體忽然破棺而出芜繁,到底是詐尸還是另有隱情,我是刑警寧澤怯疤,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布浆洗,位于F島的核電站,受9級特大地震影響集峦,放射性物質(zhì)發(fā)生泄漏伏社。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一塔淤、第九天 我趴在偏房一處隱蔽的房頂上張望摘昌。 院中可真熱鬧,春花似錦高蜂、人聲如沸聪黎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽稿饰。三九已至,卻和暖如春露泊,著一層夾襖步出監(jiān)牢的瞬間喉镰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工惭笑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留侣姆,地道東北人。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓沉噩,卻偏偏與公主長得像捺宗,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子川蒙,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345