下载下来的文件(比如图片)应该如何选择本地存储目录

iOS和Android上App都有独立的沙盒机制,但是二者又有所区别。Android中除了本身App自己的沙盒以外,还可以访问外部存储(SD卡),而iOS中每个App的数据都存储在自己独立的沙盒中。

注意

对于存储的文件,文件的路径如果需要保存的话,请使用相对路径存储。在业务中需要使用文件路径时,使用file插件获取相关目录路径+存储的文件的相对路径,来获得文件的全路径。

例如:对于文件a.word,iOS存在cache目录的子目录b下,Android存储在sd卡根目录的子目录b下,那么a.word文件的路径应该保存为b/a.word;

文件的全路径应该如下:

iOS:/..../.../cache/b/a.word,其中/.../.../cache通过调用file插件cacheDirectory获得; Android:/.../.../b/a.word,其中/.../...通过调用file插件externalRootDirectory获得;

对于Android

  • 凡是属于安全性比较高的,不希望用户或者第三方应用删除的,均推荐使用cordova.file.dataDirectory.例如:数据库db文件.
  • 凡是暂时性数据,用完就可以删的。均推荐使用cordova.file.cacheDirectory. 例如:用于缓存的json文件
  • 凡是大数据存储的,均建议存于sdcard,以免影响用户手机使用性能。
  • 数据需要长久保存的,使用cordova.file.externalDataDirectory.例如图片.
  • 用于缓存设计的,临时下载目录等推荐使用cordova.file.externalCacheDirectory.

对于iOS

  • 需要长久保存的数据,使用cordova.file.dataDirectory;
  • 需要长久保存的数据且需要同步到iCloud中的,使用cordova.file.syncedDataDirectory;
  • 临时性数据,使用cordova.file.cacheDirectory或者cordova.file.tempDirectory(这两个目录下的数据在某些情况下可能被系统自动清除数据,比如磁盘空间不足)

results matching ""

    No results matching ""