2015-05-04 27 views
6

是否有可能將常規定位標記指向打開保存文件對話框的文件?就像網絡瀏覽器一樣。使用Electron保存來自定位標記的文件

例如:

<a download href="documents/somefile.pdf">Download</a> 

而且具有錨標籤觸發點擊一個保存文件對話框?

我試過使用file://absolute-path-to-the-dir/documents/somefile.pdf,它希望在應用程序中打開文件而不是下載它。

更新: 在Electron的一個更高版本中,當我寫這個問題時,行爲與我想要的一樣,打開一個窗口,要求用戶保存文件。

但是,在外部鏈接的情況下,希望保留Electron窗口僅用於內部鏈接並在默認操作系統選項中打開外部鏈接,Joshua Smith的答案可以做到這一點。

+0

任何運氣找到解決方案嗎?我期待着做同樣的事情。 – MobileSam

+0

@MobileSam目前還沒有。我已經放棄了現在的嘗試。一旦我有更多的時間,將嘗試再次找到答案。 –

+2

經過一番研究,我在這裏找到了答案: https://discuss.atom.io/t/how-to-access-atom-shell-apis-within-angularjs-for-opening-a-file-save -dialog/14376/4 – MobileSam

回答

2

我在做什麼是雙重的。

mainWindow.webContents.on('new-window', function(event, url) { 
    event.preventDefault(); 
    console.log("Handing off to O/S: "+url); 
    shell.openExternal(url); 
}); 

也就是說有這樣,每當我的應用程序頁面要打開一個新的窗口,那將在實際的瀏覽器發生。這對於打開PDF等也很有用。

然後我只是確保任何下載鏈接都使用target = _blank或window.open(),並且下載將發生在用戶的瀏覽器中。

+1

對於那些新來的電子:殼是要求(「電子」)。 –