pickImageForPlatform function

Future<String?> pickImageForPlatform(
  1. BuildContext context, {
  2. required Future<String?> mobilePhotoSelector(
    1. BuildContext context
    ),
})

跨平台图片选择工具。

  • 移动端(iOS / Android):通过 mobilePhotoSelector 回调调用 原生的 showPhotoSelector(由 netease_common_ui 提供,不在 nim_chatkit 依赖范围内,由调用方传入)。
  • 桌面端 / Web:直接使用 FilePicker 打开系统文件选择器, 仅支持常见图片格式(jpg / jpeg / png / gif / webp / bmp)。

用法示例

final path = await pickImageForPlatform(
  context,
  mobilePhotoSelector: (ctx) => showPhotoSelector(ctx),
);
if (path != null) { /* 处理选中的图片路径 */ }

Implementation

Future<String?> pickImageForPlatform(
  BuildContext context, {
  /// 移动端图片选择器回调,由调用方传入原生实现。
  required Future<String?> Function(BuildContext context) mobilePhotoSelector,
}) async {
  if (ChatKitUtils.isDesktopOrWeb) {
    return _pickImageWithFilePicker();
  } else {
    return mobilePhotoSelector(context);
  }
}