2016-02-29 17 views
7

最初の実行時に、WebからAPI経由でファイル(画像jpg/png)をダウンロードしてからローカルに保存する必要があるため、オンライン接続はできません(ユーザーはオンラインでアップデートを実行し、利用可能なアップデートがあれば、APIを介して新しいデータをダウンロードすることができます)。電子アプリ内でファイルをダウンロードして保存する

私はデスクトップアプリケーションがどのように動作するかはまれであるが、主な目的はデスクトップアプリケーションのデータをWebアプリケーションと同期させることだと認識しています。

これまでのところ、npmプラグインrequestlink)がユーザーがインターネットに接続されているかどうかを確認しています。

電子アプリの中にファイルをダウンロードして保存することはできません(アプリ外では表示されません)。このような目標を達成するために必要なプラグイン/ツールを推奨できますか?

ご協力いただければ幸いです。

+0

のようにこれを助けることができるパッケージのカップルがあるのですか?私はあなたが記述したようにアプリがそれを行うのはまれであると言います。ダウンロードしたすべてのデータをユーザーのホームディレクトリ(Linuxの/ home/myuser/myappなど)に保存することをおすすめします。 –

+0

私は質問を更新しました。データをダウンロードする理由は、ウェブアプリケーションを介してデータが動的に変更され、すべてのデータが他のウェブアプリケーションやモバイルアプリケーションに配信されるためです。今ではクライアントもデスクトップ版を望んでいます。 – mrmnmly

答えて

6

まあ、this answerのスニペットを使用して、それをノードの方法で行うことができます。

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

そして、ファイルの保存にはApp Data Pathを使用できます。もちろん、あなたはURLからファイルの名前を解析しなければなりません、そして、あなたは行く準備ができています。

また、その後、あなたのアプリがブラウザとして働くことになり、およびオフラインサポートは、ローカルストレージまたは他のいくつかのテクニクスを使用して追加しなければならないであろう

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

Webコンテンツを使用することができます。

UPDATE:

今日のようあなたはどのような種類のデータをダウンロードしているこの1 https://github.com/sindresorhus/electron-dl

関連する問題