繁体   English   中英

为什么在 Flutter 的多图像选择器中没有相机或照片库选项?

[英]Why no camera or photo library option in multi image picker in Flutter?

我正在使用multi_image_picker2库。 它运行良好,但是没有访问相机或照片库的选项(此处特定于 iOS)。这是我的代码片段:

import 'dart:typed_data';
import 'package:multi_image_picker2/multi_image_picker2.dart';

class ImagePickerFacade {
  Future<List<Asset>?> loadImage() async {
    try {
      var resultList = await MultiImagePicker.pickImages(
        maxImages: 300,
        enableCamera: true,
        cupertinoOptions: const CupertinoOptions(takePhotoIcon: "chat"),
      );
      if (resultList.isEmpty) {
        return null;
      } else {
        return resultList;
      }
    } on NoImagesSelectedException catch (e) {
      // User pressed cancel, update ui or show alert
      print(e);
    } on Exception catch (e) {
      // Do something
      print(e);
    }
  }
}

我还在我的Info.plist文件中包含了以下键:

<key>NSCameraUsageDescription</key>
<string>App requires access to your phone camera.</string>
<key>NSMicrophoneUsageDescription</key>
<string>App requires access to your phone audio.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>App requires access to your phone photo library.</string>

我已经使用 iOS 10、iOS 13、iOS 9 测试了我的应用程序,但问题仍然存在。 我还尝试通过 XCode 输入上面的密钥,而不是通过Info.plist文件手动输入,但似乎没有任何效果。 这是我当前在弹出图像选择器时看到的内容:

出现图像选择器提示时我模拟的 iPhone 的屏幕截图

这是我正在使用的 package 的链接: https://pub.dev/packages/multi_image_picker2

干杯

您可以使用此 package 来选择多个图像、视频或任何类型https://pub.dev/packages/file_picker

为选取的图像定义一个值

List<PlatformFile> images = [];

当您按下按钮时,图库将打开,您可以选择图像、视频或文件(如果需要,您可以选择多个文件)。

RaisedButton(
  color: Colors.red,
  shape: RoundedRectangleBorder(
     borderRadius: BorderRadius.circular(5.0),
     side: BorderSide(
     color: Colors.yellow)),
  onPressed: () async {
     FilePickerResult result = await FilePicker.platform.pickFiles(
                                  allowMultiple: true,
                                  allowCompression: true,
                                  type: FileType.any,
                                );

     setState(() {
       model.images = result.files;
     });
  },
  child: Text(
    "Import Image/Video", style: TextStyle(
                                color: Colors.white,
                                fontWeight: FontWeight.w500),
  ),
 )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM