Flutter插件開發

前言

使用Flutter進行應用開發時,爲實現一些功能(好比WebView加載網頁、實現視頻控件等)咱們會引入三方插件,這些插件咱們均可以在pub.dartlang.org/flutter網站中進行查找,而後在flutter工程中配置pubspec.yaml文件來引入。那麼,若是咱們須要實現的功能對應的插件在該網站上沒有怎麼辦呢,這時候就須要咱們本身來開發特定的插件了。本篇咱們就來介紹一下如何開發本身的插件和如何在項目中使用。java

開發Flutter插件

建立插件項目

首先,咱們建立一個指定文件夾demo_0414,而後在終端命令行中該文件夾下使用如下flutter命令根據插件模板建立一個插件項目android

flutter create -t plugin flutter_plugin_demo
複製代碼

執行完成後,會在demo_0414目錄下生成一個flutter plugin項目,使用Android Studio打開項目目錄結構以下ios

目錄結構中咱們能夠看到比日常建立的flutter項目多了一個example目錄,這個就是對應插件的例子工程,它是一個flutter application項目,當咱們插件項目的功能開發完成後,能夠經過example工程寫一些plugin api的具體使用實例,以便發佈後讀者經過example可以更快速的學習該插件的使用方法。git

咱們看到插件項目的lib目錄下有一個模板生成的dart文件,該文件包含的FlutterPluginDemo就是一個插件類,其內部實現了一個獲取平臺系統版本的方法,該方法是經過實現的Platform Channel來獲取版本號信息的,咱們查看插件工程內的android和ios目錄中確實有對應的Platform Channel實現。github

插件功能開發

建立好的插件項目中已經爲咱們實現好了一個獲取平臺系統版本號的插件類,那麼,咱們若是想實現本身所須要的功能該如何編寫對應的代碼呢?編程

安卓平臺代碼添加

在添加安卓平臺代碼以前,須要確保插件代碼經過example工程被構建過一次(這很重要),能夠執行如下命令進行構建api

//首先執行
cd flutter_plugin_demo/example/

//而後執行
flutter build apk
複製代碼

example工程中構建安卓apk包完成後,能夠經過Android Studio打開example項目中的安卓工程,編輯器中的項目結構以下bash

咱們能夠看到以android項目目錄結構展現插件對應的java類代碼位於flutter_plugin_demo/java/com.example.flutter_plugin_demo/目錄下,此時咱們就能夠編輯該類文件添加插件功能了。微信

iOS平臺代碼添加

在添加iOS平臺代碼以前,同安卓同樣,也要確保插件代碼經過example工程被構建過一次,能夠執行如下命令進行構建app

//首先執行
cd flutter_plugin_demo/example/

//而後執行
flutter build ios --no-codesign
複製代碼

構建完成後,咱們可使用Xcode打開example工程中iOS項目,找到ios目錄下的Runner.xcworkspace並打開,編輯器中的項目結構以下

咱們能夠看到插件代碼位於Pods/Development Pods/flutter_plugin_demo/../../example/ios/.symlinks/plugins/目錄下,此時咱們就能夠編輯FlutterPluginDemoPlugin類來添加插件功能了。

dart api代碼添加

dart api代碼添加就簡單多了,直接在插件項目的lib下的dart文件中添加便可

插件的使用

自有插件開發完成後如何使用呢,有三種引用方式

  1. 將插件發佈到pub上,就可使用常規的引用方式(發佈pub上即公開,你們均可以使用,若是是私有的不要這樣作);
dependencies:
  dio: 2.1.x
複製代碼
  1. 將插件工程上傳到git庫上,能夠經過指定git地址的方式引用;
dependencies:
  dio:
    git:
      url: git://github.com/flutterchina/dio.git
複製代碼
  1. 能夠經過相對路徑的方式引入本地插件;
// 好比example工程中的pubspec.yaml中引入咱們的demo插件的方式
dependencies:
  flutter_plugin_demo:
    path: ../
    
// 若是建立一個與插件目錄平級目錄的flutter項目,引入插件則在pubspec.yaml中配置
dependencies:
  flutter_plugin_demo:
    path: ../flutter_plugin_demo
複製代碼

插件引入以後,咱們就能夠在本身的flutter項目中經過dart api使用插件開發的功能了。

總結

Flutter plugin的開發流程其實挺簡單,必定要注意添加插件代碼以前要使用example工程對平臺代碼構建一次,這樣纔會在example工程目錄中正常顯示插件文件以供編輯。

經過以上步驟便可完成flutter插件項目的建立和插件功能的添加,若是插件功能實現時須要依賴三方插件,那麼插件項目中一樣能夠經過pubspec.yaml引入三方插件。後續咱們在開發分享功能時若是找不到實現好的分享插件,本身就能夠來實現了,若是你想公開供你們使用還能夠發佈到pub上分享出來。

說明:

文章轉載自對應的「Flutter編程指南」微信公衆號,更多Flutter相關技術文章打開微信掃描二維碼關注微信公衆號獲取。

相關文章
相關標籤/搜索