根据这些问题:UIImagePickerController未请求许可和无权从照片库中选择照片
如果您想在 iOS 上选择一张图像,则无需请求许可即可执行此操作,因为应用程序实际上并不访问图库。
但是,我找不到 Flutter 的方法。像ImagePicker这样的包总是请求许可。
有没有人在未经许可的情况下在 iOS 上的 Flutter 中成功选取图像的?
旧的
UIImagePickerController
允许在旧版 iOS 上使用,但自 iOS 14 起已被弃用。
Flutter ImagePicker
插件在iOS代码中使用PHPicker,我在Github上检查了他们的代码,它允许您从用户那里挑选图像而无需请求权限。我强烈推荐使用该插件。
尝试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'],
);
您可以找到详细的使用方法这里
您可以找到文档这里
我们可以使用Flutter官方插件 - image_picker
重要 - 确保您通过
requestFullMetadata
作为 false
。
final List<XFile> imageList =
await ImagePicker().pickMultiImage(requestFullMetadata: false);
默认情况下是
true
(可能是为了在PHPicker之前开始使用旧版本插件的应用程序的行为方面保持向后兼容性)