首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Flutter 开发鸿蒙应用时三方库引入指南

Flutter 开发鸿蒙应用时三方库引入指南

作者头像
徐建国
发布于 2025-05-26 02:25:05
发布于 2025-05-26 02:25:05
32200
代码可运行
举报
文章被收录于专栏:个人路线个人路线
运行总次数:0
代码可运行

问题描述

近期有开发者反馈,在使用 Flutter 开发鸿蒙应用过程中,file_picker 和 file_selector 这两个三方库在鸿蒙系统上出现点击无响应的情况,而相同代码在安卓系统上却能正常拉起文件选择器。该项目使用的是 Flutter 3.22.0 ohos 版本,相关导入代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import 'package:file_selector/file_selector.dart';
import 'package:file_picker/file_picker.dart'; //导入filepicker

示例代码

以下是出现问题的代码片段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    appBar: AppBar(
      title: const Text('legado_flutter'),
      actions: <Widget>[
        //导航栏右侧菜单
        IconButton(
            icon: const Icon(Icons.add),
            onPressed: () async {
              //往下开始用filepick提供的方法
              FilePickerResult? result =
                  await FilePicker.platform.pickFiles(
                type: FileType.custom,
                allowedExtensions: ['txt'], //筛选文件类型
              );
              //这就用完了,下面就赋值了
              if (result != null) {
                PlatformFile file = result.files.first;
                aasd = file.path; //取数据,有name,path,size等等,这就取个文件地址

                setState(() {
                  //刷新界面显示数据,否则下面的text不更新
                });
              } else {
                // User canceled the picker
              }
            }),
      ],
      // leading: Builder(builder: (context) {
      //   return IconButton(
      //     icon: Icon(Icons.dashboard, color: Colors.white), //自定义图标
      //     onPressed: () {
      //       // 打开抽屉菜单
      //       Scaffold.of(context).openDrawer();
      //     },
      //   );
      // })
    ),

解决方案

要解决鸿蒙系统下 file_picker 和 file_selector 无响应的问题,需要在 pubspec.yaml 中添加特定的 Git 依赖。请按照以下方式配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

  file_picker:
    git:
      url: "https://gitcode.com/openharmony-sig/fluttertpc_file_picker.git"
  file_picker_ohos:
    git:
      url: "https://gitcode.com/openharmony-sig/fluttertpc_file_picker.git"
      path: "ohos"

配置说明

这里的 url 指向鸿蒙开源社区维护的三方库 Git 仓库地址,path 参数则指定了插件在仓库中的具体路径。对于是否需要额外添加_ohos 后缀的依赖,主要取决于原始插件的 pubspec.yaml 是否已经包含了鸿蒙版本的支持。

以 file_picker 为例,从其 pubspec.yaml 文件可以看出(如图所示),该插件并未默认引入 ohos 版本,因此需要手动添加 file_picker_ohos 依赖:。

CleanShot 2025-05-22 at 00.13.01@2x.png
CleanShot 2025-05-22 at 00.13.01@2x.png

CleanShot 2025-05-22 at 00.13.01@2x.png

总结

通过上述配置,就可以解决 Flutter 开发鸿蒙应用时 file_picker 和 file_selector 点击无响应的问题。在集成其他三方库时,也建议检查其鸿蒙版本支持情况,按照类似方式处理,确保应用在不同平台上都能正常运行。

最后也给大家附上坚果派鸿蒙化的 Flutter 库。

坚果派鸿蒙化的 Flutter 库

序号

原仓

概述

版本

适配仓

1

https://pub.dev/packages/fluttertoast[1]

获取联系人信息

8.2.12

https://gitcode.com/nutpi/FlutterToast

2

https://pub.dev/packages/flutter_udid

UDID

4.0.0

https://gitcode.com/nutpi/flutter_udid

3

https://pub.dev/packages/flutter_exit_app

退出 app

1.1.4

https://gitcode.com/nutpi/flutter_exit_app

4

https://pub.dev/packages/flutter_phone_direct_caller

快速拨打电话

2.2.1

https://gitcode.com/nutpi/flutter-phone-direct-caller

5

https://pub.dev/packages/flutter_native_contact_picker

获取联系人信息

0.0.10

https://gitcode.com/nutpi/flutter_native_contact_picker

6

https://pub.dev/packages/torch_light

手电筒控制

1.1.0[2]

https://gitcode.com/nutpi/flutter_torch_light

7

https://pub.dev/packages/flutter_timezone

时区获取

4.1.0[3]

https://gitcode.com/nutpi/flutter_timezone

8

https://pub.dev/packages/memory_info

内存相关信息

0.0.4

https://gitcode.com/nutpi/memory_info

9

https://pub.dev/packages/flutter_app_icon_badge

桌面角标

2.0.0

https://gitcode.com/nutpi/flutter_app_icon_badge

10

https://pub.dev/packages/battery_level_plus

电池电量

0.0.4

https://gitcode.com/nutpi/battery_level_plus

11

https://pub.dev/packages/app_badge_plus

桌面角标

1.2.1

https://gitcode.com/nutpi/app_badge_plus

12

https://pub.dev/packages/flutter_native_contact_picker_plus

获取联系人信息

0.0.3

https://gitcode.com/nutpi/flutter_native_contact_picker_plus

13

https://pub.dev/packages/flutter_native_timezone

时区获取

2.0.0

https://github.com/pinkfish/flutter_native_timezone

坚果派

坚果派社区由小波、狼哥等人创建,团队拥有数位华为 HDE 及 1000+HarmonyOS 开发者,以及若干其他领域的三十余位万粉博主/UP 主运营。

专注于分享的技术包括 HarmonyOS/OpenHarmony、仓颉、ArkUI-X、元服务、AI、BlueOS 操作系统等。团队成员主要聚集在北京,上海,南京,深圳,广州,苏州、长沙、宁夏等地,目前已为华为、vivo、腾讯、亚马逊以及三方技术社区提供各类开发咨询服务 100+。累计粉丝 100+w,孵化开发者 10w+,高校 20+、企业 10+。自研应用 40 款,三方库 80 个,鸿蒙原生应用课程 500+。持续助力鸿蒙仓颉等生态繁荣发展。

参考资料

[1]

https://pub.dev/packages/fluttertoast: https://pub.dev/packages/flutter_native_contact_picker

[2]

1.1.0: https://pub.dev/packages/torch_light/versions/1.1.0

[3]

4.1.0: https://pub.dev/packages/flutter_timezone/versions/4.1.0

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大前端之旅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ohos 平台适配 flutter 三方库指导 url_launcher
lib:是对接 dart 端代码的入口,由此文件接收到参数后,通过 channel 将数据发送到原生端;
徐建国
2025/06/30
960
ohos 平台适配 flutter 三方库指导 url_launcher
鸿蒙版 Flutter 各版本获取指南【建议收藏】包含3.27/3.22/3.7版本
大家最近对鸿蒙版 Flutter 各版本的获取方法比较关注,今天就为大家整理一下详细的获取方式。
徐建国
2025/07/02
610
鸿蒙版 Flutter 各版本获取指南【建议收藏】包含3.27/3.22/3.7版本
遇见坚果派
于千万人中,在时间无垠的荒漠里,没有早一步,也没有晚一步,刚巧赶上了,那也没有别的话可说,惟有轻轻的问一声:“哦,你也在这里吗?”
徐建国
2025/06/26
780
遇见坚果派
使用 Flutter SDK 3.27.4构建HarmonyOS应用
项目地址:https://gitcode.com/openharmony-sig/flutter_flutter
徐建国
2025/06/08
2120
使用 Flutter SDK 3.27.4构建HarmonyOS应用
现有 Flutter 项目支持鸿蒙
最近这关税战打的是不亦说乎,从另一方面来说,国产替代浪潮奔涌,鸿蒙适配已成为一个必答题,这里面跨端框架是破局多 OS 割裂的最优解。比如 Flutter,之前有很多 app 可能是用 Flutter 做的,那么如何支持鸿蒙呢?
徐建国
2025/04/15
2.6K0
现有 Flutter 项目支持鸿蒙
使用最新的 Flutter SDK 3.22.1 构建 HarmonyOS 应用
大家都知道目前鸿蒙的开源 tpc 和 sig 仓都迁移到了 gitcode 平台了,本次更新对 Flutter SDK 也有所涉及,所以我们就用最新的 Flutter SDK 来一起看一下如何构建 HarmonyOS 应用
徐建国
2025/04/11
8920
使用最新的 Flutter SDK 3.22.1 构建 HarmonyOS 应用
如何快速判断 Flutter 库是否需要适配鸿蒙?纯 Dart 库无需适配!
在鸿蒙开发中,选择合适的 Flutter 库至关重要。纯 Dart 库因其跨平台特性,无需适配即可直接使用。但对于新手来说,如何判断一个库是否为纯 Dart 库呢?本文将为你提供清晰的判断方法和实用技巧。
徐建国
2025/04/23
2450
如何快速判断 Flutter 库是否需要适配鸿蒙?纯 Dart 库无需适配!
使用鸿蒙版 Flutter3.27.4 构建鸿蒙应用
随着鸿蒙系统的不断发展,越来越多的开发者开始关注如何使用 Flutter 来构建鸿蒙应用。本文将详细介绍如何使用鸿蒙版 Flutter 3.27.4 来构建鸿蒙应用,帮助大家快速上手。
徐建国
2025/06/08
5280
使用鸿蒙版 Flutter3.27.4 构建鸿蒙应用
Flutter_udid 三方库鸿蒙适配之旅:从零到一的深度实践
在数字化浪潮的推动下,跨平台开发框架如 Flutter 凭借其高效、便捷的特性,成为了开发者们的宠儿。而鸿蒙系统的崛起,更是为跨平台开发注入了新的活力。为了助力开发者在鸿蒙生态中快速实现 Flutter_udid 获取设备标识符功能,本文将深入浅出地为大家解析如何适配 Flutter_udid 三方库至鸿蒙平台。
徐建国
2025/04/24
1870
Flutter_udid 三方库鸿蒙适配之旅:从零到一的深度实践
Flutter-OH 版本演进规划和分支策略核心要点
坚果派由坚果创建,团队拥有 26 个华为 HDE,以及若干其他领域的三十余位万粉博主运营。专注于分享的技术包括 HarmonyOS/OpenHarmony,ArkUI-X,元服务,服务卡片,华为自研语言,BlueOS 操作系统等。团队成员聚集在北京、上海、广州、深圳、南京、杭州、苏州、宁夏等地。聚焦“鸿蒙原生应用”、“智能物联”和“AI 赋能”、“人工智能”四大业务领域,依托华为开发者专家等强大的技术团队,以及涵盖需求、开发、测试、运维于一体的综合服务体系,赋能文旅、媒体、社交、家居、消费电子等行业客户,满足社区客户数字化升级转型的需求,帮助客户实现价值提升。目前上架鸿蒙原生应用 40 款,三方库 80 个。更多详情可访问 坚果派社区[6]。
徐建国
2025/06/12
1190
Flutter-OH 版本演进规划和分支策略核心要点
使用 Flutter SDK 3.22.1构建HarmonyOS应用
1.进入项目根目录,如果项目还未创建,则使用 flutter create 命令创建项目
徐建国
2024/11/06
5660
使用 Flutter SDK 3.22.1构建HarmonyOS应用
用 Flutter 开发鸿蒙 PC 应用
本文为开发者提供了使用 Flutter 开发鸿蒙 PC 应用的全面指南。涵盖开发环境搭建、项目创建与配置、界面设计、业务逻辑开发以及调试测试等环节,同时强调适配鸿蒙 PC 界面规范和调用系统能力的方法。还分享了实用的注意事项、相关资源链接,帮助开发者高效地使用Flutter构建鸿蒙 PC 应用。
徐建国
2025/05/19
4350
用 Flutter 开发鸿蒙 PC 应用
解锁 Flutter_exit_app 库鸿蒙适配:离一键退出鸿蒙应用仅一步之遥
在数字化浪潮的推动下,跨平台开发框架如 Flutter 凭借其高效、便捷的特性,成为了开发者们的宠儿。而鸿蒙系统的崛起,更是为跨平台开发注入了新的活力。为了助力开发者在鸿蒙生态中快速实现 flutter_exit_app 退出应用程序功能,本文将深入浅出地为大家解析如何适配 flutter_exit_app 三方库至鸿蒙平台。
徐建国
2025/04/30
1410
解锁 Flutter_exit_app 库鸿蒙适配:离一键退出鸿蒙应用仅一步之遥
Flutter开发-常用的第三方库
地址:https://pub.dev/packages/shared_preferences
码客说
2020/05/16
5060
适配 HarmonyOS Next API16 的鸿蒙版 Flutter 3.22.0 版本正式发布(1.0Release)
本版本为基于 Flutter 3.22.0 适配的 OpenHarmony 版本。本版本支持和完善 OpenHarmony 平台侧能力,提升稳定性。
徐建国
2025/05/08
5570
适配 HarmonyOS Next API16 的鸿蒙版 Flutter 3.22.0 版本正式发布(1.0Release)
鸿蒙Flutter实战:09-现有Flutter项目支持鸿蒙
原有项目保持模块化,拆分为 apps/common/components/modules/plugins等目录,如下所示:
少湖说
2024/10/22
6800
鸿蒙Flutter实战:09-现有Flutter项目支持鸿蒙
鸿蒙版 Flutter 三方库适配案例【screen_brightness】
项目是一个用于控制屏幕亮度的 Flutter 插件项目,支持 Android、iOS、macOS 和 Windows 平台。
徐建国
2025/03/12
2300
鸿蒙版 Flutter 三方库适配案例【screen_brightness】
flutter_app_icon_badge 插件鸿蒙适配:实现跨平台应用图标角标管理
作者仓库:https://github.com/badver/flutter_app_icon_badge/
徐建国
2025/06/08
1150
flutter_app_icon_badge 插件鸿蒙适配:实现跨平台应用图标角标管理
Flutter 插件鸿蒙化,flutter_native_contact_picker 联系人选择器的跨平台适配实践
作者仓库:https://github.com/jayeshpansheriya/flutter_native_contact_picker
徐建国
2025/04/30
1710
Flutter 插件鸿蒙化,flutter_native_contact_picker 联系人选择器的跨平台适配实践
鸿蒙版 Flutter 版本管理利器:FVM 使用指南
FVM(Flutter Version Manager)是一个专门为 Flutter 应用开发设计的版本管理工具。它允许开发者在同一台机器上安装和管理多个 Flutter 版本,解决了团队协作和项目迁移时因 Flutter 版本差异导致的兼容性问题。它允许开发者在不同的 Flutter 项目之间快速切换版本,而无需每次都下载和配置新的 Flutter SDK
徐建国
2025/05/13
2670
鸿蒙版 Flutter 版本管理利器:FVM 使用指南
推荐阅读
相关推荐
ohos 平台适配 flutter 三方库指导 url_launcher
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档