Hace mucho tiempo que deseaba hacer una extensión de cromo para descargar imágenes por lotes. Sin embargo, cada vez que me frustré porque la única opción aparentemente aplicable es NPAPI, que tanto Chrome como Firefox parecen no tener el deseo de mantener por más tiempo.
Sugiero a los que todavía querían implementar la funcionalidad 'guardar-archivo-en-disco' para echar un vistazo a este Stackoverflow post, el comentario debajo de esta publicación me ayuda mucho.
Ahora desde Chrome 31+, el API chrome.downloads
se convirtió en estable. Podemos usarlo para descargar archivos por programa. Si el usuario no configuró la opción de avance ask me before every download
en la configuración de cromo, podemos guardar el archivo sin pedirle al usuario que confirme.
Esto es lo que yo uso (al fondo de la página de extensión):
// remember to add "permissions": ["downloads"] to manifest.json
// this snippet is inside a onMessage() listener function
var imgurl = "https://www.google.com.hk/images/srpr/logo11w.png";
chrome.downloads.download({url:imgurl},function(downloadId){
console.log("download begin, the downId is:" + downloadId);
});
Aunque es una lástima que todavía cromo no proporciona una Event
cuando se complete la descarga. función de devolución de chrome.downloads.download
's se llama cuando la descarga begin
éxito (no completó el)
la documentación oficial sobre chrome.downloads
es here.
No es mi idea original sobre la solución, pero publiqué aquí con la esperanza de que pueda ser de alguna utilidad para alguien.
No es la primera vez que estamos redireccionandonos en el NPAPI. Le echaré un vistazo. Gracias por su ayuda. –
Tenga en cuenta que si planea subir la extensión a la galería de Google, el uso de NPAPI retrasará su publicación para una revisión larga por parte de ellos y puede que incluso no termine siendo aceptada. –
Estoy de acuerdo con Max. Se retrasará la publicación, ya que se revisará manualmente. Sería mejor si tienes un servidor externo al que puedes dar acceso dentro de tu extensión y subir los datos a través de POST y recuperarlos a través de GET con los encabezados adecuados. –