Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不允许Cordova Meteor应用加载本地资源_Javascript_Cordova_Mobile_Meteor_Html5 Filesystem - Fatal编程技术网

Javascript 不允许Cordova Meteor应用加载本地资源

Javascript 不允许Cordova Meteor应用加载本地资源,javascript,cordova,mobile,meteor,html5-filesystem,Javascript,Cordova,Mobile,Meteor,Html5 Filesystem,我正在开发一个Meteor Cordova应用程序,它需要离线工作 我使用ground:db离线缓存我的数据,除了图像外,它工作正常。 我有一个使用collectionFS的图像集合。由于这些图像需要在脱机时可用,我开发了某种本地同步来观察图像采集,当一些图像被添加或更改时,使用cordova文件系统和文件传输将图像下载到本地存储。我在客户端集合中跟踪下载的图像 在模板中使用图像时,我会检查图像是否存在于本地。如果是这样,我将本地文件路径传递给模板,否则我将传递url (android:http

我正在开发一个Meteor Cordova应用程序,它需要离线工作

我使用ground:db离线缓存我的数据,除了图像外,它工作正常。 我有一个使用collectionFS的图像集合。由于这些图像需要在脱机时可用,我开发了某种本地同步来观察图像采集,当一些图像被添加或更改时,使用cordova文件系统和文件传输将图像下载到本地存储。我在客户端集合中跟踪下载的图像

在模板中使用图像时,我会检查图像是否存在于本地。如果是这样,我将本地文件路径传递给模板,否则我将传递url

(android:http://meteor.local/:0) Not allowed to load local resource: file:///storage/emulated/0/brachot/AbsoluteBlackGepolijst.jpg
Meteor移动应用程序访问本地文件系统是否存在某种问题

以下是我的一些相关代码:

Images.find().observe({
    added: function(doc){
      console.log('added: ' + doc.original.name);
      var localImage = LocalImages.findOne(doc._id);
      if (!localImage && window.fileSystem && window.fileSystem.root){
    // create filepath for new file
    var dir = window.fileSystem.root.getDirectory("brachot", {create: true, exclusive: false}, function(dirEntry){
      var file = dirEntry.getFile(doc.original.name, {create: true, exclusive: false}, function(fileEntry){
        var filePath = fileEntry.toURL();

        // download the file to the filepath
        var fileTransfer = new FileTransfer();
        console.log('starting file download: ' + doc.url() + ' to ' + filePath);
        fileTransfer.download(
          doc.url(),
          filePath,
          function(){
            // download image and save locally
            LocalImages.insert({
              _id: doc._id,
              name: doc.original.name,
              url: filePath
          });
            console.log('save');
        },
        function(error){
            console.log('failed to save image: ' + filePath + ' (error: ' + error.http_status + ')');
        }
        );
    });
  }, function(error){
      console.log(JSON.stringify(error));
});

Template.materials.helpers({  
    imageUrl: function(){
        var image = LocalImages.findOne({name: this.image});
        if (!image) {
            image = Images.findOne({'original.name': this.image});
            return image.url();
        }
        else {
            return image.url;
        }
    }
});
试着加上

App.accessRule(“http://meteor.local/*");

到应用程序根目录中的mobile-config.js


Ref:

检查一下,简而言之,你需要运行
meteor——发布cordova-41.0
,因为其他两个家伙不工作,但请尝试一下,我正在编写一个类似的应用程序。访问本地文件系统有什么进展吗?