Я работаю над приложением Meteor Cordova, которое должно работать в автономном режиме.Приложение Cordova Meteor не разрешено загружать локальный ресурс
Я использую ground: db для кэширования моих данных в автономном режиме, который отлично работает, кроме изображений. У меня есть коллекция изображений с использованием коллекцииFS. Поскольку эти изображения должны быть доступны в автономном режиме, я разработал некоторую локальную синхронизацию, которая отслеживает сбор изображений, и когда какое-то изображение добавляется или изменяется, загружает изображение в локальное хранилище с использованием файловой системы cordova и filetransfer. Я отслеживаю загруженные изображения в клиентской коллекции.
При использовании изображения в шаблоне я проверяю, существует ли изображение локально. Если это так, я передаю локальный путь к файлу, иначе я передаю 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;
}
}
});
Проверьте этот вопрос [Github] (https://github.com/meteor/meteor/issues/3229), вкратце вам нужно запустить 'meteor -release cordova-41.0', потому что остальные 2 ребята не работают, но дайте ему попробовать – Ethaan
Я пишу подобное приложение. Любой прогресс в доступе к локальной файловой системе? – Nate