2016-02-29 23 views
7

İlk çalıştırmada web'den API (jpg/png) dosyalarını indirmek zorunda kalacağınız bir uygulama üzerinde çalışıyorum ve daha sonra yerel olarak saklayın. artık gerekli (kullanıcı herhangi bir güncelleme olduğunda çevrimiçi olarak güncellemeyi çalıştırabilir ve daha yeni verileri api ile yükleyebilir).Elektron uygulaması içindeki dosyaları indirin ve saklayın

Bunun, masaüstü uygulamasının nasıl çalıştığını çok nadir şekilde bildiğinin farkındayım, ancak ana hedef masaüstü uygulaması verilerini web uygulamasıyla senkronize etmektir. Şu ana kadar, kullanıcının internete bağlı olup olmadığını kontrol etmek için bir npm eklentisi olan request (link) buldum.

Dosyaları elektron uygulamasında (uygulama dışında görünmeyecek şekilde) indirip saklamak mümkün olmadığından emin değilim? Böyle bir amaca ulaşmak için gerekli eklentileri/araçları tavsiye edebilir misiniz?

Herhangi bir yardım için teşekkür ederiz.

+0

ne tür gibi bu konuda yardımcı olabilir paketlerin bir çift vardır? Uygulamaların sizin tarif ettiğiniz şekilde yapması oldukça alışılmadık bir şey olduğunu söyleyebilirim. İndirilen tüm verileri kullanıcının giriş dizinine kaydetmeyi öneriyorum (ör. Linux'ta/home/myuser/myapp). –

+0

Soruyu güncelledim. Verilerin indirilmesinin nedeni, verilerin diğer web ve mobil uygulamalara dağıtılan tüm verileri işleyen web uygulaması aracılığıyla dinamik olarak değişmesidir. Artık istemci de masaüstü sürümü istiyor. – mrmnmly

cevap

6

Kuyruk parçasını this answer'dan kullanabilir ve düğüm yolunu kullanabilirsiniz.

var http = require('http'); 
var fs = require('fs'); 
var app = require('remote').require('app') 

var file = fs.createWriteStream(app.getDataPath() + "externalFiles/file.jpg"); 
var request = http.get("http://url-to-api/some-image.jpg", function(response) { 
    response.pipe(file); 
}); 

Ve dosyalarını depolamak için App Data Path kullanabilirsiniz. Tabii ki, dosyanın adını URL'den ayrıştırmak zorunda kalacaksınız, ve sonra hazırsınız.

Ayrıca kullanabilirsiniz web içeriği

https://github.com/atom/electron/blob/master/docs/api/web-contents.md

Sonra uygulaması bir tarayıcı olarak çalışma olacağını ve çevrimdışı destek yerel depolama veya başka teknikler kullanılarak ilave edilmesi gerekir.

GÜNCELLEME:

bugün itibariyle indirmekte olduğunuz veri bu bir https://github.com/sindresorhus/electron-dl

İlgili konular