Javascript Cordova文件插件,用于从ios缓存加载视频源

Javascript Cordova文件插件,用于从ios缓存加载视频源,javascript,ios,cordova,caching,plugins,Javascript,Ios,Cordova,Caching,Plugins,我真的想从我的应用程序缓存加载视频源。在我的应用程序的本机部分中,我将视频保存到缓存中文件夹中的文件夹中 /var/mobile/Containers/Data/Application/639797B4-1726-4350-91D7-2E212ACB974D/Library/Caches/../…/clip.mov 因此,我正在研究使用cordova文件插件: 老实说,我很困惑我该如何实施它。我在应用程序的web端几乎什么也没做。只是一些基本功能,我有点不确定该如何做,应该在哪里做。我知道它应

我真的想从我的应用程序缓存加载视频源。在我的应用程序的本机部分中,我将视频保存到缓存中文件夹中的文件夹中

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

因此,我正在研究使用cordova文件插件:

老实说,我很困惑我该如何实施它。我在应用程序的web端几乎什么也没做。只是一些基本功能,我有点不确定该如何做,应该在哪里做。我知道它应该在设备准备好之后出现

我想做的就是读取文件,但它说我需要一个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();
var-app={
//应用程序构造函数
初始化:函数(){
这是bindEvents();
},
//绑定事件侦听器
bindEvents:function(){
文件.addEventListener('devicerady',this.ondevicerady,false);
...
//一些按钮事件
...
},
//deviceready事件处理程序
ondevicerady:function(){
app.receivedEvent(“DeviceRady”);

//在这里,使用此代码,您可以从您所说的路径获取文件,并将其保存在变量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);
        });

您好,感谢您的回复。这似乎非常有用。但是window.resolveLocalFileSystemURL似乎没有为我启动。我已尝试将其放置在多个位置,包括我的问题中指出的onDeviceReady事件内部和app.initialize()之后然而,我甚至没有收到console.log的响应或警报。有什么想法吗?你安装了cordova文件插件吗?所以目前我在启动函数之前有一个日志,一个在未启动的函数中,一个在错误捕获中,一个在未启动,另一个在错误捕获后,没有启动。除此之外,我已经注释掉了所有的e内容,因此它似乎出于某种原因卡在函数本身上。