Я использую плагин FileTransfer для загрузки файлов с сервера.
В IOS я нигде не вижу загруженное видео.Но я могу открыть загруженное видео, используя cordova-plugin-fileopener Плагин.
Вот некоторые снимок кода и детали.
В коде для места хранения вIOS я использовал следующие места. cordova.file.documentsDirectory , dataDirectory , cacheDirectory
onDownloadAsset:function(){
var storageLocation = Ext.os.is.Android ? 'file:///storage/emulated/0/Download/': cordova.file.documentsDirectory;
window.resolveLocalFileSystemURL(storageLocation, Ext.os.is.Android ? this.downloadFile : this.onDirectorySuccess, this.onDirectoryFail);
Ext.toast(MyApp.Localization.DownloadStarted, 2000);
},
downloadFile: function(fileSystem){
fileSystem.getDirectory('NuvoAssets', { create: true, exclusive: false }, MyApp.onDirectorySuccess, MyApp.onDirectoryFail);
},
onDirectorySuccess: function(parent){
console.log(parent);
MyApp.fileSystem = parent;
var fileName = MyApp.assetRecord.get('Title');
console.log(fileName);
parent.getFile(fileName, {
create: true,
exclusive: false
}, MyApp.gotFileEntry, MyApp.onDirectoryFail);
},
gotFileEntry : function(fileEntry) {
// URL in which the pdf is available
var assetRecord = MyApp.assetRecord;
var downloadUrl =Ext.String.format('{0}?deviceType={1}&Id={2}', MyApp.Common.getUrl('DownloadAsset'), Ext.os.deviceType, assetRecord.get('Id'));
var uri = encodeURI(downloadUrl);
var fileTransfer = new FileTransfer();
if(!Ext.os.is.Android) {
uri = uri.replace(/^file:\/\//, '');
}
Ext.toast(fileEntry.nativeURL, 10000);
fileTransfer.download(uri, MyApp.fileSystem.nativeURL + MyApp.assetRecord.get('Title'),
function(entry) {
// Logic to open file using file opener plugin
Ext.toast(MyApp.Localization.DownloadSuccess, 2000);
Ext.toast(entry.nativeURL, 14000);
if(!Ext.os.is.Android){
var mimeType = "video/mp4";
cordova.plugins.fileOpener2.open(entry.nativeURL, mimeType, {error : function(){
Ext.toast("ERROR opening with cordova.plugins.fileOpener2", 2000);
},
success : function(){
Ext.toast("SUCCESS opening zip file", 2000);
}
});
}
},
function(error) {
Ext.toast(MyApp.Localization.DownloadFailed, 2000);
},
false
);
},
onDirectoryFail: function(error){
Ext.toast(MyApp.Localization.DownloadFailed, 2000);
}
В Config.xml у меня есть следующая конфигурация
<preference name="iosPersistentFileLocation" value="Library" />
<preference name="iosExtraFilesystems" value="library,library-nosync,documents,documents-nosync,cache,bundle,root" />
Для iosPersistentFileLocation я пробовал "Библиотеку" и "Совместимость".