You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter联邦插件编写咨询:各包内容及正确创建方法

Flutter联邦插件核心包职责说明

1. app_facing_package(面向应用的包)

  • 这是应用开发者直接依赖的包,对外暴露所有业务API,开发者无需关心底层平台实现细节
  • 内部仅做逻辑转发:调用platform_interface_package定义的统一接口,不包含任何平台原生代码
  • 举例:url_launcher的launchUrl()方法就定义在这里,内部只是把调用转给对应的平台接口实现

2. platform_interface_package(平台接口包)

  • 定义跨平台的统一接口规范,所有平台实现都必须遵循这套标准
  • 核心是抽象类(比如UrlLauncherPlatform),里面声明业务所需的所有抽象方法
  • 还包含跨平台共用的枚举、数据模型,以及可选的默认实现(比如Web端的通用处理逻辑)
  • 这个包完全独立,不依赖任何平台代码或具体实现包

3. platform_package(平台实现包)

  • 针对特定平台(Android/iOS/Linux/macOS/Windows等)的原生实现包,每个平台对应一个独立包(比如url_launcher_android、url_launcher_ios)
  • 核心工作是实现platform_interface_package中的抽象类,编写对应平台的原生代码(Kotlin/Java/Swift/C++等)完成具体功能
  • 这些包会被app_facing_package间接依赖,或由开发者按需单独引入(比如仅引入Android平台实现)

创建联邦插件的实操提示

官方flutter create命令默认生成普通插件,要搭建联邦插件结构可以手动拆分:

  1. 先创建app_facing_package和platform_interface_package,先把统一接口定义清楚
  2. 为每个目标平台单独创建platform_package,实现对应接口的原生逻辑
  3. 在app_facing_package中添加对platform_interface_package的依赖,通过接口调用完成跨平台逻辑分发

内容的提问来源于stack exchange,提问作者Aryaveer Chaudhary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 12:12:03