Cordova File Plugin для загрузки источника видео из кеша ios

Я действительно хочу загрузить источник видео из кеша моих приложений. В родной части моего приложения я сохраняю видео в папке внутри папки в кеше.

/var/mobile/Containers/Data/Application/639797B4-1726-4350-91D7-2E212ACB974D/Library/Caches/.../.../clip.mov

Итак, я изучал использование плагина Cordova File:

https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/index.html

и, честно говоря, я так растерялся относительно того, как я должен это реализовать. Я почти ничего не сделал на веб-стороне приложения. Просто несколько основных функций, и я не совсем уверен, как это сделать и где я должен это делать. Я понимаю, что это должно прийти после того, как устройство будет готово.

все, что я хочу сделать, это прочитать файл, но он говорит, что мне нужен объект fileEntry, для которого я думаю, что мне нужно создать временный или постоянный файл. (Не уверен, что это уместно, потому что я хочу использовать файл только временно, но я сохраняю его в файловой системе файловых кешей, так что я думаю, что он постоянен?) Я просто в целом не понимаю, что мне нужно включить.

Ниже мой Баскетбол JS:

var app = {
    // Application Constructor
    initialize: function() {
        this.bindEvents();
    },
    // Bind Event Listeners
    bindEvents: function() {
        document.addEventListener('deviceready', this.onDeviceReady, false);
        ...
        //some button events
        ...
    },
    // deviceready Event Handler
    onDeviceReady: function() {
        app.receivedEvent('deviceready');
        // <---
    },
    // Update DOM on a Received Event
    receivedEvent: function(id) {
        var parentElement = document.getElementById(id);
        var listeningElement = parentElement.querySelector('.listening');
        var receivedElement = parentElement.querySelector('.received');

        listeningElement.setAttribute('style', 'display:none;');
        receivedElement.setAttribute('style', 'display:block;');

        console.log('Received Event: ' + id);
    }
};
app.initialize();

если бы кто-нибудь мог указать мне правильное направление, это было бы очень ценно.

Благодарю.

1 ответ

Здесь у вас есть, с помощью этого кода вы можете взять файл по указанному вами пути и поместить его в Base64 в переменную. В основе этого вы можете делать, где вы хотите с ним.

window.resolveLocalFileSystemURL(cordova.file.applicationStorageDirectory, function(dir) {
          console.log("got main dir",dir);

          dir.getFile("clip.mov", {create:false}, function(fileEntry) {
            console.log("got the file", fileEntry);
            fileEntry.file(function(file) {
              var reader = new FileReader();
              reader.onloadend = function(e) {
                //In this e you have your file
                console.log(e);
              };
              reader.readAsDataURL(file);
            });
          });
        }, function(err) {
            console.log(err);
        });
Другие вопросы по тегам