2

嗨,请原谅我的英语,也是 Flutter iOS 上的新手,我在 iOS 上有一个 Flutter 应用程序,用户可以从他们的相机和图库中拍摄照片和视频我正在使用 image_picker 包,这没有问题,然后我将它保存在在其应用程序文档目录中,我尝试按照指南进行操作

我获取应用程序目录的代码是这样的

Directory _appDocDir;
_appDocDir = await getApplicationDocumentsDirectory();
final Directory _appMediaDir = Directory('${_appDocDir.path}/Pictures/');
return _appMediaDir;

添加了一个“图片”目录,这将给出一个路径

/Users/macman/Library/Developer/CoreSimulator/Devices/96060868-7E5C-4E15-9900-4D1D4B0B5ACE/data/Containers/Data/Application/BE7728A6-FF15-498E-91A0-A96A3DDE5B31/Documents/Pictures/D_IMG_0002.JPG  

从 iOS 模拟器中,我将其保存并放入数据库中,在重新编译应用程序或进行构建更新后,不再找到预览图像/视频路径。我试图在这个构建上保存另一个图像并给出这个路径

/Users/macman/Library/Developer/CoreSimulator/Devices/96060868-7E5C-4E15-9900-4D1D4B0B5ACE/data/Containers/Data/Application/9D634D91-07B8-43BE-8646-2A55833322DF/Documents/Pictures/D_IMG_0005.JPG

我注意到之前的路径这部分“/BE7728A6-FF15-498E-91A0-A96A3DDE5B31/”每次我重新编译应用程序或从 iOS 设备进行更新时都会更改,但找不到图像。对于能够保存图像的用户来说,最常见的做法是我做错了吗?

更新:我尝试更改我的逻辑以将保存的路径更改为仅基本名称(D_IMAGE_0005.JPG),然后在预览图像时将调用当前的应用程序文档目录,但这也不起作用。

谢谢你

4

2 回答 2

2

嗨,不要保存 getApplicationDocumentsDirectory() 给出的整个路径,而是只保存基本名称,每次预览/加载图像时调用

getApplicationDocumentsDirectory() + 'Pictures/<basename>',

每次在 iOS 上更新或重新编译应用程序时,appid 都会更改,这就是您的路径无法在重新编译时加载的原因。

于 2021-06-07T02:07:27.657 回答
0

如果您的应用程序在沙盒环境中运行,iOS 会在您每次重新安装应用程序时删除文档目录。

请参阅此 stackoverflow 问题以获得更多说明

于 2021-06-06T13:40:24.610 回答