Flutter 使用 packages

2020-08-27 14:47 更新

使用包

搜索packages

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

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

將包依賴項添加到應用程序

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

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

有關完整示例,請參閱下面的CSS Colors example below.


開發(fā)新的packages

如果某個軟件包不適用于您的特定需求,則可以開發(fā)新的自定義package。


管理包依賴和版本

Package versions

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

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

  • 范圍限制: 指定一個最小和最大的版本號,如:dependencies: url_launcher: '>=0.1.2 <0.2.0'
  • 范圍限制使用 caret 語法: 與常規(guī)的范圍約束類似(譯者語:這和node下npm的版本管理類似)dependencies: collection: '^0.1.2'

有關更多詳細信息,請參閱 Pub 版本管理指南.

更新依賴包

當你在添加一個包后首次運行(IntelliJ中的’Packages Get’)flutter 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ā)布的專用插件,或者尚未準備好發(fā)布的軟件包,可以使用其他依賴項選項:

  • 路徑 依賴: 一個Flutter應用可以依賴一個插件通過文件系統(tǒng)的path:依賴。路徑可以是相對的,也可以是絕對的。例如,要依賴位于應用相鄰目錄中的插件’plugin1’,請使用以下語法dependencies: plugin1: path: ../plugin1/
  • Git 依賴: 你也可以依賴存儲在Git倉庫中的包。如果軟件包位于倉庫的根目錄中,請使用以下語法:dependencies: plugin1: git: url: git://github.com/flutter/plugin1.git
  • Git 依賴于文件夾中的包: 默認情況下,Pub假定包位于Git存儲庫的根目錄中。如果不是這種情況,您可以使用path參數(shù)指定位置,例如:dependencies: package1: git: url: git://github.com/flutter/packages.git path: packages/package1

最后,您可以使用ref參數(shù)將依賴關系固定到特定的git commit,branch或tag。有關更多詳細信息,請參閱 Pub Dependencies article.


例子

例子: 使用 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. 運行應用程序

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

URL Launcher可以使您打開移動平臺上的默認瀏覽器顯示給定的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. 運行應用程序。當您點擊“Show Flutter homepage”時,您應該看到手機的默認瀏覽器打開,并出現(xiàn)Flutter主頁
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號