2015-05-04 4 views
6

Ist es möglich, dass normale Anchor-Tags auf Dateien verweisen, die einen Dialog zum Speichern der Datei öffnen? Wie ein Webbrowser.Datei von Anchor-Tag mit Electron speichern

Zum Beispiel:

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

Und mit diesem Anker-Tag eine Datei speichern-Dialog auf Klick auslösenden?

Ich habe versucht mit file://absolute-path-to-the-dir/documents/somefile.pdf und es möchte die Datei in der Anwendung öffnen, anstatt es herunterzuladen.

Update: In einer späteren Version von Electron als ich verwendet habe, wenn ich diese Frage schrieb das Verhalten ist wie ich es will, ein Fenster öffnet, fragt den Benutzer, um die Datei zu speichern.

jedoch im Fall von externen Links und will die Elektronenfenster für interne Links nur zu halten und die Externen in der Standard-OS Wahl zu öffnen, kann die Antwort von Joshua Smith genau das tun.

+0

Haben Sie Glück, eine Lösung dafür zu finden? Ich möchte genau dasselbe machen. – MobileSam

+0

@MobileSam Keine bisher. Ich habe es aufgegeben, für jetzt zu versuchen. Ich werde versuchen, eine Antwort zu finden, sobald ich mehr Zeit habe. –

+2

Nach einigen Recherchen fand ich hier eine Antwort: https://discuss.atom.io/t/how-to-access-atom-shell-apis-within-angularjs-for-opening-a-file-save -dialog/14376/4 – MobileSam

Antwort

2

Was ich tue, ist zweifach.

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

, dass es so, dass, wenn eine Seite in meiner app will ein neues Fenster öffnen, das in einem aktuellen Browser passieren wird. Dies ist auch gut zum Öffnen von PDFs und dergleichen.

Dann stelle ich nur sicher, dass alle Download-Links verwenden target = _blank oder window.open() und der Download wird im Browser des Benutzers passieren.

+1

Für diejenigen, die neu im Elektron sind: Schale ist erforderlich ("Elektron"). –