如何在另一个 flutter 应用程序中使用本地 flutter 包?
how to use local flutter package in another flutter application?
如何在另一个flutter应用中使用本地的flutter包?
我使用以下命令创建了一个包:
flutter create --template=package my_new_package
然后在我的应用程序源代码中 => main.dart
import "package:my_new_package/my_new_package.dart" // can not find the package
在你的 flutter 应用程序中找到这个文件 => pubspec.yaml
使用本地依赖
dependencies:
flutter:
sdk: flutter
my_new_package:
path: ./my_new_package
注意:上面的./my_new_package
表示包含pubspec.yaml
包的my_new_package
目录是应用程序的子目录。
如果您将包作为与应用程序处于同一级别的目录,换句话说,在目录树中更高一级,您可以使用 ../my_new_package
(注意双点)或完整包目录的路径。
路径依赖:Flutter 应用程序可以通过文件系统路径依赖插件:依赖。路径可以是相对的也可以是绝对的。例如,要依赖位于应用旁边目录中的插件 plugin1,请使用以下语法:
dependencies:
plugin1:
path: ../your_package/
完整流程:
下载您要使用的插件代码,并将其放在与您的 flutter 项目目录“相同”的级别
-- plugin-name
-- your flutter directory -- lib
-- android
-- ios etc etc
将插件路径添加到pubspec.yaml。 *如果您不确定要使用的插件名称是否正确,请查看插件 pubspec.yaml 文件中的 name:
属性。插件目录也必须保存相同的name:
dependencies:
plugin-name:
path: ../plugin-name
运行 Pub get
并且您可以像导入任何其他插件一样导入。唯一不同的是当你在开发过程中点击任何一个插件类,它会指向本地文件。
嘿,我在开始使用 flutter 后遇到了同样的问题。
我在我的应用程序中实施了 pdf_view
插件示例,用于更改微光效果而不是 CircularProgressIndicator()
。
一些知识
You can edit plugins which are get by flutter pub get
but they might be replaced when you create app bundle by flutter.
现在你对示例插件的回答假设以 advance_pdf_viewer
为例
GitHub Link
下载 zip 文件并将其解压缩到 pdf_viewer/
确保 pdf_viewer/
拥有所有文件,包括 lib
、Android
、iOS
和所有相关文件。
例如,复制项目目录中的 pdf_viewer
文件夹
我的项目是 invoice_viewer
所以它的根目录有所有文件夹,例如 lib
、Android、iOS
等。将它与 lib
一起复制到这个根目录中, Android
, iOS
.
现在打开你的pubsec.yaml
并编写如下代码
dependencies:
flutter:
sdk: flutter
# advance_pdf_viewer: ^2.0.0
advance_pdf_viewer:
path: ./pdf_viewer
- 在评论中,我已将服务器版本替换为本地版本,并在插件的
viewer.dart
文件中进行更改以实现所需的更改。
希望您和其他人从这一发现中得到一些信息!
如何在另一个flutter应用中使用本地的flutter包?
我使用以下命令创建了一个包:
flutter create --template=package my_new_package
然后在我的应用程序源代码中 => main.dart
import "package:my_new_package/my_new_package.dart" // can not find the package
在你的 flutter 应用程序中找到这个文件 => pubspec.yaml
使用本地依赖
dependencies:
flutter:
sdk: flutter
my_new_package:
path: ./my_new_package
注意:上面的./my_new_package
表示包含pubspec.yaml
包的my_new_package
目录是应用程序的子目录。
如果您将包作为与应用程序处于同一级别的目录,换句话说,在目录树中更高一级,您可以使用 ../my_new_package
(注意双点)或完整包目录的路径。
路径依赖:Flutter 应用程序可以通过文件系统路径依赖插件:依赖。路径可以是相对的也可以是绝对的。例如,要依赖位于应用旁边目录中的插件 plugin1,请使用以下语法:
dependencies:
plugin1:
path: ../your_package/
完整流程:
下载您要使用的插件代码,并将其放在与您的 flutter 项目目录“相同”的级别
-- plugin-name -- your flutter directory -- lib -- android -- ios etc etc
将插件路径添加到pubspec.yaml。 *如果您不确定要使用的插件名称是否正确,请查看插件 pubspec.yaml 文件中的
name:
属性。插件目录也必须保存相同的name:
dependencies: plugin-name: path: ../plugin-name
运行
Pub get
并且您可以像导入任何其他插件一样导入。唯一不同的是当你在开发过程中点击任何一个插件类,它会指向本地文件。
嘿,我在开始使用 flutter 后遇到了同样的问题。
我在我的应用程序中实施了 pdf_view
插件示例,用于更改微光效果而不是 CircularProgressIndicator()
。
一些知识
You can edit plugins which are get by
flutter pub get
but they might be replaced when you create app bundle by flutter.
现在你对示例插件的回答假设以 advance_pdf_viewer
为例
GitHub Link
下载 zip 文件并将其解压缩到
pdf_viewer/
确保
pdf_viewer/
拥有所有文件,包括lib
、Android
、iOS
和所有相关文件。
例如,复制项目目录中的
pdf_viewer
文件夹 我的项目是invoice_viewer
所以它的根目录有所有文件夹,例如lib
、Android、iOS
等。将它与lib
一起复制到这个根目录中,Android
,iOS
.现在打开你的
pubsec.yaml
并编写如下代码
dependencies:
flutter:
sdk: flutter
# advance_pdf_viewer: ^2.0.0
advance_pdf_viewer:
path: ./pdf_viewer
- 在评论中,我已将服务器版本替换为本地版本,并在插件的
viewer.dart
文件中进行更改以实现所需的更改。
希望您和其他人从这一发现中得到一些信息!