2016-11-10 4 views
0

Ich möchte meinen C# -Download-Manager mit einer Chrome-Erweiterung integrieren, und ich bin neu in der Entwicklung von Erweiterungen.Wie kann ich einen Chrome-Download vor dem Start abbrechen und die Download-URL abrufen?

Also muss ich erkennen, wenn eine Download-Anfrage in Chrom gesendet wird. Dann muss ich die URL abrufen und sie an mein Programm zum Herunterladen übergeben. Ich habe es versucht, konnte aber keine Antwort bekommen.

Mein Code:

manifest.js

{ 
    "manifest_version": 2, 

    "name": "ADM", 
    "description": "This extension shows a Google Image search result for the current page", 
    "version": "1.0", 

    "browser_action": { 
    "default_icon": "icon.png" 
    }, 
    "permissions": [ 
    "downloads", 
    "https://ajax.googleapis.com/" 
    ], 

    "content_scripts": [{ 
    "matches" : ["http://*/*", "https://*/*"], 
    "js" : ["myscript.js"] 
    }] 
} 

MyScript.js

chrome.downloads.onDeterminingFilename.addListener(function (item) { 
    chrome.downloads.cancel(item.id); 
    alert(item.url); 
}); 

Wie gesagt, hat dieser Code nicht den Download abbrechen und zeigen die URL für den Test. Wie kann ich es tun?

+0

ich zu ändern vergessen zu 'content_script' js Dateinamen, sorry dafür. Es muss "myscript.js" sein. Außer diesem Fehler habe ich es mit einer einfachen Warnfunktion versucht und das Skript wird ausgeführt, wenn eine URL mit Regex übereinstimmt. –

+1

Sie benötigen noch eine Ereignisseite. https://developer.chrome.com/extensions/overview#arch –

+0

Wie ich verstehe, muss ich 'sendMessage' und' onMessage' verwenden, um es zu tun. Ist es wahr? –

Antwort

1

Sie versuchen, aus einem Inhaltsskript auf privilegierte Chrome API zuzugreifen, was aus Sicherheitsgründen nicht zulässig ist. Sie müssen Ihren Code auf eine Ereignisseite verschieben.

"background": { "scripts": ["myscript.js"], "persistent": false } 

Lesen Sie auch die Architektur im Überblick: https://developer.chrome.com/extensions/overview#arch

Verwandte Themen