Flutter使用 packages

Flutter支持使用由其他開發(fā)者貢獻給Flutter和Dart生態(tài)系統(tǒng)的共享軟件包。這使您可以快速構(gòu)建應(yīng)用程序,而無需從頭開始開發(fā)所有應(yīng)用程序。

現(xiàn)有的軟件包支持許多使用場景,例如,網(wǎng)絡(luò)請求(http),自定義導(dǎo)航/路由處理(fluro), 集成設(shè)備API(如url_launcherbattery) 以及使用第三方平臺SDK(如Firebase(需翻墻))。

使用包

搜索packages

Packages會被發(fā)布到了 Pub 包倉庫.

Flutter landing 頁面 顯示了與Flutter兼容的包(即聲明依賴通常與撲兼容)。所有已發(fā)布的包都支持搜索。

將包依賴項添加到應(yīng)用程序

要將包css_colors添加到應(yīng)用中,請執(zhí)行以下操作

  1. 依賴它
    • 打開 pubspec.yaml 文件,然后在dependencies下添加css_colors:
  2. 安裝它
    • 在 terminal中: 運行 flutter packages get
      或者
    • 在 IntelliJ中: 點擊pubspec.yaml文件頂部的Packages Get
  3. 導(dǎo)入它
    • 在您的Dart代碼中添加相應(yīng)的import語句.

管理包依賴和版本

Package versions

所有軟件包都有一個版本號,在他們的pubspec.yaml文件中指定。Pub會在其名稱旁邊顯示軟件包的當(dāng)前版本(例如,請參閱url_launcher軟件包)以及所有先前版本的列表。

當(dāng)pubspec.yaml使用速記形式添加包時,plugin1: 這被解釋為plugin1: any,即可以使用任何版本的包。為了確保某個包在更新后還可以正常使用,我們建議使用以下格式之一指定版本范圍:

  • 范圍限制: 指定一個最小和最大的版本號,如:

    dependencies:
      url_launcher: '>=0.1.2 <0.2.0'
    
  • 范圍限制使用 caret 語法 與常規(guī)的范圍約束類似(這和node下npm的版本管理類似)

    dependencies:
      collection: '^0.1.2'
    

更新依賴包

當(dāng)你在添加一個包后首次運行(IntelliJ中的Packages Getflutter packages get,F(xiàn)lutter將找到包的版本保存在pubspec.lock。這確保了如果您或您的團隊中的其他開發(fā)人員運行flutter packages get后回獲取相同版本的包。

如果要升級到軟件包的新版本,例如使用該軟件包中的新功能,請運行flutter packages upgrade(在IntelliJ中點擊Upgrade dependencies)。 這將根據(jù)您在pubspec.yaml中指定的版本約束下載所允許的最高可用版本。

依賴未發(fā)布的packages

即使未在Pub上發(fā)布,軟件包也可以使用。對于不用于公開發(fā)布的專用插件,或者尚未準(zhǔn)備好發(fā)布的軟件包,可以使用其他依賴項選項:

  • 路徑 依賴: 一個Flutter應(yīng)用可以依賴一個插件通過文件系統(tǒng)的path:依賴。路徑可以是相對的,也可以是絕對的。例如,要依賴位于應(yīng)用相鄰目錄中的插件plugin1,請使用以下語法
dependencies:
  plugin1:
    path: ../plugin1/

Git 依賴: 你也可以依賴存儲在Git倉庫中的包。如果軟件包位于倉庫的根目錄中,請使用以下語法:

dependencies:
  plugin1:
    git:
      url: git://github.com/flutter/plugin1.git

Git 依賴于文件夾中的包: 默認(rèn)情況下,Pub假定包位于Git存儲庫的根目錄中。如果不是這種情況,您可以使用path參數(shù)指定位置,例如:

dependencies:
  package1:
    git:
      url: git://github.com/flutter/packages.git
      path: packages/package1      

最后,您可以使用ref參數(shù)將依賴關(guān)系固定到特定git commit,branchtag。

例子

例子: 使用 CSS Colors package

css_colors包為CSS顏色定義顏色常量,允許您在Flutter中需要Color類型的任何位置使用它們

要使用這個包:

  1. 創(chuàng)建一個名為 cssdemo的新項目

  2. 打開 pubspec.yaml, 并將:

    dependencies:
      flutter:
        sdk: flutter
    
    

    替換為:

    dependencies:
      flutter:
        sdk: flutter
      css_colors: ^1.0.0
    
    
  3. 在terminal中運行 flutter packages get, 或者在IntelliJ鐘點擊Packages get

  4. 打開 lib/main.dart 并替換其全部內(nèi)容:

    import 'package:flutter/material.dart';
    import 'package:css_colors/css_colors.dart';
    
    void main() {
      runApp(new MyApp());
    }
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return new MaterialApp(
          home: new DemoPage(),
        );
      }
    }
    
    class DemoPage extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return new Scaffold(
          body: new Container(color: CSSColors.orange)
        );
      }
    }
    
    
  5. 運行應(yīng)用程序

Example: 使用URL Launcher package to 啟動瀏覽器

URL Launcher可以使您打開移動平臺上的默認(rèn)瀏覽器顯示給定的URL。 它演示了軟件包如何包含特定于平臺的代碼(我們稱這些軟件包為插件)。它在Android和iOS上均受支持。

使用這個插件:

  1. 創(chuàng)建一個名為launchdemo的新項目

  2. 打開 pubspec.yaml, 并將:

    dependencies:
      flutter:
        sdk: flutter
    
    

    替換為:

    dependencies:
      flutter:
        sdk: flutter
      url_launcher: ^0.4.1
    
    
  3. 在terminal中運行 flutter packages get, 或者在IntelliJ鐘點擊Packages get

  4. 打開 lib/main.dart 并替換其全部內(nèi)容:

    import 'package:flutter/material.dart';
    import 'package:url_launcher/url_launcher.dart';
    
    void main() {
      runApp(new MyApp());
    }
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return new MaterialApp(
          home: new DemoPage(),
        );
      }
    }
    
    class DemoPage extends StatelessWidget {
      launchURL() {
        launch('https://flutter.io');
      }
    
      @override
      Widget build(BuildContext context) {
        return new Scaffold(
          body: new Center(
            child: new RaisedButton(
              onPressed: launchURL,
              child: new Text('Show Flutter homepage'),
            ),
          ),
        );
      }
    }
    
    
  5. 運行應(yīng)用程序。當(dāng)您點擊Show Flutter homepage時,您應(yīng)該看到手機的默認(rèn)瀏覽器打開,并出現(xiàn)Flutter主頁

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容