iOS 上 Flutter 中的单个图像选择器未经许可

问题描述 投票:0回答:4

根据这些问题:UIImagePickerController未请求许可无权从照片库中选择照片

如果您想在 iOS 上选择一张图像,则无需请求许可即可执行此操作,因为应用程序实际上并不访问图库。
但是,我找不到 Flutter 的方法。像ImagePicker这样的包总是请求许可。

有没有人在未经许可的情况下在 iOS 上的 Flutter 中成功选取图像的?

ios image flutter permissions uiimagepickercontroller
4个回答
3
投票

来自苹果文档:

PHPickerViewController 是一个新的选择器,取代了 UIImagePickerController。其用户界面与照片应用程序相匹配,支持照片和视频的搜索和多重选择,并提供内容的流畅缩放。由于系统在单独的进程中管理其生命周期,因此默认情况下它是私有的。用户不需要明确授权您的应用程序来选择照片,从而带来更简单、更流畅的用户体验。

这个使用

PHPickerViewController
,如这里

所示

2
投票

旧的

UIImagePickerController
允许在旧版 iOS 上使用,但自 iOS 14 起已被弃用。

Flutter ImagePicker
插件在iOS代码中使用PHPicker,我在Github上检查了他们的代码,它允许您从用户那里挑选图像而无需请求权限。我强烈推荐使用该插件。


0
投票

尝试file_picker它应该适合您,因为它支持所有平台,包括IOS和Mac,支持各种类型的文件类型,您可以指定自定义文件类型也限制您的文件选择,以及您可以从cloud选择文件( GDrive、Dropbox、iCloud)...

首先将最新的

file_picker
添加为
pubspec.yaml
文件中的依赖项。

将此依赖项导入文件中您想要使用的任何地方,然后就可以开始了...

要选择单个文件,请使用此代码

FilePickerResult? result = await FilePicker.platform.pickFiles();

if (result != null) {
  File file = File(result.files.single.path);
} else {
  // User canceled the picker
}

带有扩展名过滤器的文件:

FilePickerResult? result = await FilePicker.platform.pickFiles(
  type: FileType.custom,
  allowedExtensions: ['jpg', 'pdf', 'doc'],
);

您可以找到详细的使用方法这里

您可以找到文档这里


0
投票

我们可以使用Flutter官方插件 - image_picker

重要 - 确保您通过

requestFullMetadata
作为
false

final List<XFile> imageList =
      await ImagePicker().pickMultiImage(requestFullMetadata: false);

默认情况下是

true
(可能是为了在PHPicker之前开始使用旧版本插件的应用程序的行为方面保持向后兼容性)

© www.soinside.com 2019 - 2024. All rights reserved.