是一种将对不同平台的支援功能分为单独的软件包。所以联合插件能够使用针对iOS、Android、Web 甚至是针对汽车(例如在IoT 设备上)分别使用对应的package。除了这些好处之外,它还能够让各领域专家在他们最了解的平台上扩展现有的平台插件
联合插件需要以下package:
app-facing package
使用插件时所依赖的package,此package 指定 Flutter 应用程序使用的 API
platform package(s)
一个或多个包含特定於平台的实作程序码的package,由app-facing package 调用这些platform package
platform interface package
将app-facing package 连接到platform package 的package。此package 声明了一个接口,各platform package 都必须实作该接口以支援app-facing package 。拥有定义此接口的package 可确保所有platform package 以各平台的实作程序码来实现接口上统一定义的功能
官方推荐一个具体的例子: How to Write a Flutter Web Plugin, Part 1
理想状况下,若想要新增平台实现至一个联合插件时,这时将与联合插件作者协调以引入您新增的平台实现,通过这种方式,原作者认可您的实现。
例如,假设您想要为foobar
插件新增一个Windows 平台的foobar_windows
,编写了其Windows 平台的实现後,在认可的插件中,foobar
原作者将您的 Windows 实现添加为app-facing package 的 pubspec 中的依赖项,之後在 Flutter 应用程序中引入foobar
插件後,Windows 实现以及其他认可的实现将都可以使用
如果不想让原始插件作者添加您的实现,那麽您的插件就没有得到认可,在 Flutter 应用程序中仍然可以使用您的实现,但必须手动将插件添加到应用程序的 pubspec 文件中,例如,必须在应用程序的 pubspec 中引入foobar
的依赖和 对foobar_windows
以实现完整的功能依赖
<<: ASP.NET MVC 从入门到放弃(Day13) -C# HttpClient 泛型功能介绍
能够完赛的人是鬼吧 本文会提到做 singular linked list 常犯错误、如何避免,与常...
如何找到一个函式(function)?(下) 步骤一:写出一个带有未知参数的函式 昨天举的例子 是一...
今天开了配对单给大家做 side project,有兴趣可以来找找夥伴,前後端 / UIUX 皆可~...
思路 想说list最长的element,就会是center 程序码 class Solution {...
上一篇介绍的日志纪录主要用来找错误与优化改善问题方面,而今天的日志内容会跟MYSQL数据恢复&am...