flutter plugin開發(fā)

作者在研究開發(fā)plugin支持各個平臺需要處理的事情。

1蛹锰、plugin 官方文檔:

https://flutter.dev/docs/development/packages-and-plugins/developing-packages#plugin-platforms

flutter create --org com.example --template=plugin --platforms=macos,ios,windows,web hello2

使用命令行后深胳,在Mac下不能創(chuàng)建windows相關(guān)文件,應(yīng)該是不支持铜犬,要去windows下試試舞终。

2、官方plugin地址

https://github.com/flutter/plugins/tree/master/packages/

3癣猾、官方plugin實現(xiàn)解讀

查看了下敛劝,plugin各個平臺實現(xiàn)都是單獨的plugin項目,我們常用的url_launcher纷宇,實際上是6個plugin項目夸盟。。emmmm像捶。上陕。。


image.png

基本說明拓春,各個平臺都需要相關(guān)知識人員去實現(xiàn)释簿,好吧,我做不到硼莽。辕万。。
我們項目里使用的時候引用的就是第一個url_launcher,然后查看url_launcher的pubspec.yaml文件沉删,

flutter:
  plugin:
    platforms:
      android:
        package: io.flutter.plugins.urllauncher
        pluginClass: UrlLauncherPlugin
      ios:
        pluginClass: FLTURLLauncherPlugin
      web:
        default_package: url_launcher_web
      linux:
        default_package: url_laucher_linux
      macos:
        default_package: url_laucher_macos
      windows:
        default_package: url_laucher_windows

dependencies:
  flutter:
    sdk: flutter
  url_launcher_platform_interface: ^1.0.9
  url_launcher_web: ^0.1.5
  url_launcher_linux: ^0.0.1
  url_launcher_macos: ^0.0.1
  url_launcher_windows: ^0.0.1

可以看到各個平臺引用是不一樣的渐尿,有pluginClass和default_package,pluginClass就是在當(dāng)前plugin項目里實現(xiàn)了矾瑰,直接引用這個類砖茸,default_package是引用包,這里可以理解為額外的第三方包依賴(這個包應(yīng)該也可以在當(dāng)前plugin項目里實現(xiàn)殴穴,然后引用)凉夯。

4货葬、windows平臺

我們打開url_laucher_windows里面的pubspec.yaml文件

name: url_launcher_windows
description: Windows implementation of the url_launcher plugin.
version: 2.0.0
homepage: https://github.com/flutter/plugins/tree/master/packages/url_launcher/url_launcher_windows

flutter:
  plugin:
    implements: url_launcher
    platforms:
      windows:
        pluginClass: UrlLauncherPlugin

再來看下文件目錄:


image.png

.cpp文件,作者知識盲區(qū)了劲够,就不看具體代碼了震桶。。

5征绎、總結(jié)

首先蹲姐,一個plugin是可以搞定所有平臺的,但是為什么官方這里要分開呢人柿,我覺得以下2個原因:
1柴墩、這不是一個人在寫呀,分開寫對于各個平臺的開發(fā)人員多友好凫岖。
2江咳、在各平臺各取所需,不用把所有的代碼都集成到項目里去哥放。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末歼指,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子甥雕,更是在濱河造成了極大的恐慌东臀,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件犀农,死亡現(xiàn)場離奇詭異惰赋,居然都是意外死亡,警方通過查閱死者的電腦和手機呵哨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門赁濒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人孟害,你說我怎么就攤上這事拒炎。” “怎么了挨务?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵击你,是天一觀的道長。 經(jīng)常有香客問我谎柄,道長丁侄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任朝巫,我火速辦了婚禮鸿摇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘劈猿。我一直安慰自己拙吉,他們只是感情好潮孽,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著筷黔,像睡著了一般往史。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上佛舱,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天椎例,我揣著相機與錄音,去河邊找鬼名眉。 笑死粟矿,一個胖子當(dāng)著我的面吹牛凰棉,可吹牛的內(nèi)容都是我干的损拢。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼撒犀,長吁一口氣:“原來是場噩夢啊……” “哼福压!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起或舞,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤荆姆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后映凳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胆筒,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年诈豌,在試婚紗的時候發(fā)現(xiàn)自己被綠了仆救。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡矫渔,死狀恐怖彤蔽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情庙洼,我是刑警寧澤顿痪,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站油够,受9級特大地震影響蚁袭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜石咬,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一撕阎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧碌补,春花似錦虏束、人聲如沸棉饶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽照藻。三九已至,卻和暖如春汗侵,著一層夾襖步出監(jiān)牢的瞬間幸缕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工晰韵, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留发乔,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓雪猪,卻偏偏與公主長得像栏尚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子只恨,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容