Кордова - сохранить видео файл в IOS - PullRequest
0 голосов
/ 15 октября 2018

Я использую плагин 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 я пробовал "Библиотеку" и "Совместимость".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...