HarmonyOS 鸿蒙Next Flutter 实现保存图片到相册功能

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next Flutter 实现保存图片到相册功能

Harmony  原生端有 photoAccessHelper 接口可以实现相册管理,但是需要申请 ACL 白名单;同时有保存控件 SaveButton 实现保存图片到相册功能,该控件不需要申请权限。  但是 flutter  端目前只有一个 [flutter_image_gallery_saver](https://gitee.com/openharmony-sig/flutter_image_gallery_saver) 库可以实现保存图片到相册功能,而这个库使用的是 photoAccessHelper 接口,需要申请 ACL 白名单。  flutter  端目前没有一个类似 SaveButton 保存控件的库,如果只是为了“保存图片到相册”这个功能申请 ACL 白名单,是否不妥?还是说这边建议暂时还是走 ACL 方式? 保存图片到相册是所有应用的常见功能。

2 回复
flutter中的ui界面都是在dart代码里的,无法直接使用ets侧的SaveButton。

目前正在重构PlatformView,理论上是可以通过PlatformView使用鸿蒙原生的SaveButton的。

在HarmonyOS鸿蒙系统上,使用Flutter实现保存图片到相册功能,通常可以通过以下步骤实现:

  1. 依赖引入:确保你的pubspec.yaml文件中引入了必要的Flutter插件,如image_pickerimage_saver(或其他支持保存图片的插件)。

  2. 权限声明:在AndroidManifest.xmlconfig.json中声明读写外部存储的权限。HarmonyOS特有权限需在config.json中配置。

  3. 图片选择/拍摄:使用image_picker插件从相册选择或拍摄图片。

  4. 图片保存:使用image_saver或其他插件将图片保存到相册。注意,保存时需处理平台差异,确保在鸿蒙系统上也能正确执行。

  5. 处理回调:保存图片后,处理成功或失败的回调,给用户相应的提示。

示例代码(简化):

// 选择图片
final pickedFile = await ImagePicker().pickImage(source: ImageSource.gallery);

// 保存图片
final result = await ImageSaver.saveImage(file: File(pickedFile!.path));

if (result) {
  // 成功提示
} else {
  // 失败提示
}

确保插件版本与鸿蒙系统兼容,并测试在不同设备上的表现。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部