Cordova 应用下载的图片显示在图库中
Cordova app downloaded images showing in gallery
我的应用程序下载一组图像并通过创建文件夹将它们存储在内部存储器中。
问题是图片显示在图库中。这不应该发生,有没有办法以编程方式隐藏图像但仍可供应用程序使用?
提前致谢。
编辑:
这仅发生在应用程序的 android 版本中。在 iOS 中,它没有显示在相机胶卷中。
这取决于您下载图像的位置:如果您将它们下载到您的图片文件夹或 sdcard/internal 内存中的 public 文件夹内,则 MediaScanner 会扫描它们,以便您的图片在图库应用程序。
要避免这种情况,您可以尝试以下解决方案之一:
- 在目标文件夹中添加 .nomedia 文件
或
- 使用 LocalFileSystem.TEMPORARY.
在应用程序缓存目录中下载您的图片
类似于
window.requestFileSystem(LocalFileSystem.TEMPORARY, 0, function(fs) {
fs.root.getDirectory("media", {create: true}, function(fileDirectoryEntry) {
// var destFile = fileDirectory + "/" + filename;
// downloadPicture(srcUrl, destFile);
});
});
此解决方案的缺点是,当应用程序被删除时,您的照片也会被删除。
我的应用程序下载一组图像并通过创建文件夹将它们存储在内部存储器中。
问题是图片显示在图库中。这不应该发生,有没有办法以编程方式隐藏图像但仍可供应用程序使用?
提前致谢。
编辑: 这仅发生在应用程序的 android 版本中。在 iOS 中,它没有显示在相机胶卷中。
这取决于您下载图像的位置:如果您将它们下载到您的图片文件夹或 sdcard/internal 内存中的 public 文件夹内,则 MediaScanner 会扫描它们,以便您的图片在图库应用程序。
要避免这种情况,您可以尝试以下解决方案之一:
- 在目标文件夹中添加 .nomedia 文件
或 - 使用 LocalFileSystem.TEMPORARY. 在应用程序缓存目录中下载您的图片
类似于
window.requestFileSystem(LocalFileSystem.TEMPORARY, 0, function(fs) {
fs.root.getDirectory("media", {create: true}, function(fileDirectoryEntry) {
// var destFile = fileDirectory + "/" + filename;
// downloadPicture(srcUrl, destFile);
});
});
此解决方案的缺点是,当应用程序被删除时,您的照片也会被删除。