Cache do aplicativo iOS PhoneGap
No Android eu usei
file:///storage/sdcard0/Android/data/my.app.id/cache/
baixar (Transferência de arquivo) algumas imagens e depois mostrá-las no meu html. As imagens e tudo o mais dentro desta pasta são removidas ao excluir meu aplicativo, exatamente o que eu quero.
Como conseguir isso no iOS?
Eu tentei com
file:///var/mobile/Applications/<GUID of app>/Documents/
já que foi o que obtive ao solicitar o sistema de arquivos, mas as imagens nem serão baixadas (código de erro 1). Alguma ideia? Descobri mais sobre o meu erro: é o mesmo erro indicado emesta Pergunta, questão. (Não foi possível criar o caminho para salvar o arquivo baixado - Erro de cacau 512)
obrigado
Mais informações: Os plugins relevantes que eu uso são
<gap:plugin name="org.apache.cordova.file" />
<gap:plugin name="org.apache.cordova.file-transfer" />
e recursos:
<feature name="File">
<param name="android-package" value="org.apache.cordova.file.FileUtils" />
</feature>
<feature name="File">
<param name="ios-package" value="CDVFile" />
</feature>
<feature name="FileTransfer">
<param name="ios-package" value="CDVFileTransfer" />
</feature>
Baixo imagens com sucesso no Android com:
var fileTransfer = new FileTransfer();
var uri = encodeURI("myserverurl/"+fileName);
var filePath = appCachePath+fileName;
fileTransfer.download(
uri,
filePath,
function(entry) {
alert("download complete: " + entry.fullPath);
},
function(error) {
alert("download error source/target/code:\n" + error.source +" \n||| "+error.target+" \n||| "+error.code);
}
);
Eu os baixai APÓS obter o FS com êxito
function onDeviceReady() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
if(device.platform === 'Android'){
cacheFolderSubPath = "Android/data/id.app.my/cache/";
}
else{
cacheFolderSubPath = ""; // for iOS what ??
}
}
function gotFS(fileSystem) {
var nturl = fileSystem.root.toNativeURL(); // returns cdvfile://localhost/persistent/ for both iOS and Android
window.resolveLocalFileSystemURL(nturl+cacheFolderSubPath, onResolveSuccess, onResolveFail);
}
function onResolveSuccess(fileEntry) {
// this is "file:///..." string mentioned in the question above.
appCachePath = fileEntry.toNativeURL()+"/";
// etc etc etc ... (use this appCachePath with download code above)
}