在 Flutter 中编辑 3rd 方插件

Posted

技术标签:

【中文标题】在 Flutter 中编辑 3rd 方插件【英文标题】:Editing 3rd party Plugins in Flutter 【发布时间】:2020-08-12 13:46:54 【问题描述】:

我想编辑一个插件以适应我的应用程序。 我只是通过 CTRL+单击 Flutter 中的插件导入代码并编辑所需的 .dart 文件来做到这一点。

现在我想知道,这是否可以在将来被覆盖。

路径(我编辑 dart 文件的地方)是:

flutter > .pub-cache > hosted > pub.dartlang.org > PLUGIN NAME > lib > templates > FILENAME.dart

这是编辑插件的正确方法吗?或者我应该在哪里编辑 .dart 文件?

感谢您的帮助!

【问题讨论】:

【参考方案1】:

我建议您首先检查您正在编辑的软件包的许可证,看看您是否可以合法地更改它。尽管如此,让我们想象一下,你是并且你想继续。

如果您编辑这样的插件,您只是在编辑该插件的缓存版本。只要缓存没有更新,这种变化就会一直存在。

但是,如果您希望您的更改是持久的,您应该分叉 Github 存储库并在那里编辑文件。在 Github 中编辑完文件后,您可以将它们导入到您的项目中,因为它们不会被意外更改。

要从 Github 导入新的分叉存储库,请转到 pubspec.yaml 文件,然后像这样导入它:

my_forked_package:
  git:
    url: git://github.com/'YOUR_USERNAME'/my_forked_package.git

同样,您可以将 Github 存储库下载为 Zip,解压到您想要的任何位置(不是在项目文件夹中),然后像这样导入包:

my_forked_package:
  path: 'path_to_package_folder'

我希望这可以帮助您进一步开发您的应用程序!

【讨论】:

感谢您的帮助!但是我在实施方面遇到了一些问题。我下载了压缩包。我应该在我的 App 项目的主根目录中创建一个新文件夹并将 .zip 复制到其中吗?我应该解压缩 zip 文件吗?会是这个样子吗? :my_forked_pa​​ckage:路径:'文件夹名/解压缩文件夹名/'?我想使用插件的 .dart 文件中的导入“”应该是什么样子?感谢您的帮助! 解压缩到任何你想要的地方(不在项目文件夹中),路径是:C/users/downloaded_pa​​ckage/ 例如。我希望这可以澄清它。 谢谢,我可以同时弄清楚。但它就像我上面写的那样工作。所以我在我的 App-Project-Folder 中创建了一个新文件夹(例如 lib 文件夹所在的位置),然后我将插件解压缩到这个文件夹中。它的工作方式类似于 path:'Foldername/unzipFoldername/' 谢谢弗朗西斯科。你会如何为flutter/plugins repo 中的 Flutter 插件执行此操作? 哦,解决了:只需使用插件所在的文件夹,在那个 repo 里面。 (虽然我还没有构建应用程序)

以上是关于在 Flutter 中编辑 3rd 方插件的主要内容,如果未能解决你的问题,请参考以下文章

在 3rd 方插件中访问 laravel 会话

电话间隙;开发者应用程序是不是支持 3rd 方插件?

带有插件、dll 和 3rd 方工具的大型 c++ 项目的结构

如何在 Flutter 中对依赖于 3rd-Party-Package 的代码进行单元测试?

为啥 MonthCalendar 在 3rd 方应用程序中看起来不同?

在 iOS 上使用 phonegap 构建推送通知,没有 3rd 方服务