对于这个问题,如果我使用了任何错误的术语,那么有点新手!
每当我通过cordova构建应用程序时,它都会为其分配一个新的应用程序ID,例如
2A7DA53D-C2B8-4804-9800-E664F6F93F23
然后我的应用程序将图像存储在以下目录中
"file:///var/mobile/Containers/Data/Application/2A7DA53D-C2B8-4804-9800-E664F6F93F23/Documents/reportimages_7/1535710208164.jpg"
这可以正常工作,但是一旦我的应用程序更新,它就会尝试访问具有先前应用程序ID的图像。例如,在更新应用并存储另一张图片后,该图片存储在
"file:///var/mobile/Containers/Data/Application/946CCCED-A1B3-4950-9C63-EFD040542115/Documents/reportimages_8/1535710897382.jpg"
然后我使用cordova文件传输来搜索上述网址,并且只能找到946CCCED-A1B3-4950-9C63-EFD040542115
当前应用程序id文件夹中的图像!
有什么方法可以跳过应用程序ID,而直接从'/ Documents /'中获取文件,以便查找
/Documents/reportimages_7/1535710208164.jpg /Documents/reportimages_8/1535710897382.jpg
因此,即使应用程序ID更改后,它也始终可以找到图像,或者有什么方法可以始终查找具有更改的应用程序ID的图像?
答案 0 :(得分:0)
简而言之, “ 2A7DA53D-C2B8-4804-9800-E664F6F93F23”文件夹是您的应用程序的沙箱。应用程序只能在自己的沙箱中访问文件(您不希望其他应用程序监视您的文件,对吗?)
如果仅更新(覆盖)应用程序,则沙箱文件夹不应更改。如果您在安装新版本之前删除该应用程序,或者在项目中更改了诸如Bundle Identifier之类的内容,它将创建新的Sandbox。