使用cordova插件在iOS中删除应用程序的临时目录
Posted
技术标签:
【中文标题】使用cordova插件在iOS中删除应用程序的临时目录【英文标题】:delete temp directory of an app in iOS using cordova plugin 【发布时间】:2016-04-18 11:49:18 【问题描述】:我正在使用 ionic 框架在 ios 的 Library 目录中的应用程序中存储一些图像。是否可以使用 Cordova-plugin-file 和 Cordova-plugin-file 传输删除同一目录?
谁能帮忙?
我下载图片的代码是:
downloadImage: function(url, fileName)
var deferred = $q.defer();
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fs)
fs.root.getDirectory(
LOCAL_STORAGE_KEYS.app,
create: true
,
function(dirEntry)
// console.log(arguments);
dirEntry.getFile(
fileName,
create: true,
exclusive: false
,
function(fe)
console.log(arguments);
var p = fe.toURL();
console.log("In service the url path:", p);
fe.remove();
var ft = new FileTransfer();
console.log('File Transfer instance:', ft);
ft.download(
encodeURI(url),
p,
function(entry)
console.log('In service the entry callback:', entry);
if (entry && entry.toURL)
deferred.resolve(entry.toURL());
else
console.log('No entry:', arguments);
deferred.resolve();
,
function(err)
console.log('Getting rejected:', err);
deferred.reject(err);
,
false,
null
);
,
function()
deferred.reject(new Error('get file failed'));
);
);
,
function()
deferred.reject(new Error('get directory failed'));
);
return deferred.promise;
【问题讨论】:
你要删除的目录叫什么名字? 【参考方案1】:这里是使用cordova文件插件删除目录及其内容的示例代码sn-p:
function clearDirectory()
if (ionic.Platform.isandroid())
window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory, onFileSystemDirSuccess, fail);
else
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemDirSuccess, fail);
function onFileSystemDirSuccess(fileSystem)
var entry = "";
if (ionic.Platform.isAndroid())
entry = fileSystem;
else
entry = fileSystem.root;
entry.getDirectory("DIRECTORY_TO_DELETE",
create: true,
exclusive: false
,
function(entry)
entry.removeRecursively(function()
console.log("Remove Recursively Succeeded");
, fail);
, getDirFail);
function getDirFail(error)
navigator.notification.alert("Error");
;
function fail(error)
navigator.notification.alert("Error");
;
【讨论】:
不走运..!是iOS平台的吗? @甘地 @alyson_216 适用于 android 和 ios。在两个平台上都经过尝试和测试。以上是关于使用cordova插件在iOS中删除应用程序的临时目录的主要内容,如果未能解决你的问题,请参考以下文章
如何在 IOS cordva 应用程序中添加 cordova 插件?
在混合 Cordova iOS 应用程序中使用 iosrtc 插件的问题