2015-05-04 10 views
6

È possibile avere tag di ancoraggio regolari che puntano a file che aprono una finestra di dialogo per il salvataggio del file? Come farebbe un browser web.Salvare il file dal tag di ancoraggio utilizzando l'elettrone

Ad esempio:

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

E avere quel anchor-tag innescando un file-finestra di dialogo Salva su click?

Ho provato a utilizzare file://absolute-path-to-the-dir/documents/somefile.pdf e desidera aprire il file nell'applicazione anziché scaricarlo.

Aggiornamento: In una versione successiva di Electron di quella che ho usato quando ho scritto questa domanda il comportamento è come lo voglio io, si apre una finestra che chiede all'utente di salvare il file.

Tuttavia, nel caso di collegamenti esterni e che desiderano mantenere la finestra di Electron solo per i collegamenti interni e aprire quelli esterni nella scelta predefinita del sistema operativo, la risposta di Joshua Smith può fare esattamente questo.

+0

Qualche fortuna di trovare una soluzione per questo? Sto cercando di fare esattamente la stessa cosa. – MobileSam

+0

@MobileSam Nessuno finora. Ho rinunciato a provare per ora. Cercherò di trovare una risposta ancora una volta che avrò più tempo. –

+2

Dopo alcune ricerche, ho trovato una risposta qui: https://discuss.atom.io/t/how-to-access-atom-shell-apis-within-angularjs-for-opening-a-file-save -dialog/14376/4 – MobileSam

risposta

2

Quello che sto facendo è duplice.

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

che è là in modo che ogni volta che una pagina nella mia app vuole aprire una nuova finestra, che succederà in un browser vero e proprio. Questo è utile anche per l'apertura di PDF e così via.

Quindi mi limito a fare in modo che eventuali collegamenti di download utilizzino target = _blank o window.open() e il download avvenga nel browser dell'utente.

+1

Per chi è nuovo all'elettrone: shell è richiesto ("electron"). shell; –

Problemi correlati