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);
});