Voor ontwikkelaars
Stuur downloads naar Download Manager Plus vanaf elke website, met een link of met JavaScript.
Universele link
Link naar /add met het adres van het bestand. Als de gebruiker de extensie heeft, wordt gevraagd de download te bevestigen; zo niet, dan kan die hem installeren of het bestand direct downloaden.
<a href="https://download.extension.lat/add?name=manual.pdf&url=https%3A%2F%2Fexample.com%2Ffiles%2Fmanual.pdf" rel="nofollow">
Downloaden met Download Manager Plus
</a>| Naam | Beschrijving |
|---|---|
| url | Het http(s)-adres van het bestand. Verplicht. |
| name | Voorgestelde bestandsnaam. Optioneel; die wordt opgeschoond voordat hij wordt opgeslagen. |
Knop “Toevoegen aan Download Manager Plus”
Een link die eruitziet als een knop. Hij werkt zonder JavaScript; met het hulpscript gebruikt hij de brug wanneer die beschikbaar is.
Voorbeeld
Toevoegen aan Download Manager Plus<a
class="dmplus-button"
href="https://download.extension.lat/add?name=manual.pdf&url=https%3A%2F%2Fexample.com%2Ffiles%2Fmanual.pdf"
data-dmplus-url="https://example.com/files/manual.pdf"
data-dmplus-name="manual.pdf"
rel="nofollow"
>
Toevoegen aan Download Manager Plus
</a>
<style>
.dmplus-button {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.625rem 1.25rem;
border-radius: 999px;
background: #a3e635;
color: #1a2e05;
font: 600 0.875rem/1 system-ui, sans-serif;
text-decoration: none;
}
.dmplus-button:focus-visible {
outline: 2px solid #1a2e05;
outline-offset: 2px;
}
</style>Hulpscript
Een klein script zonder afhankelijkheden dat window.DownloadManagerPlus beschikbaar maakt. De TypeScript-typen staan in dmplus.d.ts.
<script src="https://download.extension.lat/sdk/dmplus.js" defer></script>
<!-- Optioneel: links met data-dmplus-url gebruiken de brug. -->
<script src="https://download.extension.lat/sdk/dmplus.js" data-dmplus-auto defer></script>Voeg data-dmplus-auto toe aan de scripttag zodat links met data-dmplus-url de brug gebruiken. Doe dit niet op pagina's die links tonen die door je gebruikers zijn geschreven: op een vertrouwde site downloadt de brug zonder te vragen.
// Gebruikt de brug als die op je site beschikbaar is; anders opent hij de universele link.
const result = await window.DownloadManagerPlus.addDownload({
url: "https://example.com/files/manual.pdf",
name: "manual.pdf",
});
if ("requestId" in result) {
const state = await window.DownloadManagerPlus.bridge.status(result.requestId);
console.log(state.status); // "pending", "downloading", "complete"…
}JavaScript-brug
Als de gebruiker websites downloads laat sturen (de welkomstgids biedt dit aan voor elke site) of je site toestaat via het extensiepictogram, kan je pagina downloads aanvragen en hun status controleren met window.postMessage. De gebruiker bevestigt elke download nog steeds, tenzij die je site (https) als vertrouwd markeert.
| Naam | Beschrijving |
|---|---|
| dmplus:add | Vraagt een download aan: url, plus optionele fileName en folder. |
| dmplus:status | Controleert de status van een download die je eigen pagina heeft aangevraagd. |
| dmplus:result | Het antwoord van de extensie, met dezelfde id die je stuurde. |
| dmplus:ready | De extensie meldt dat de brug actief is op de pagina. |
| dmplus:ping | Vraagt of de brug actief is; de extensie antwoordt met dmplus:ready. |
// Zonder het hulpscript: hetzelfde protocol met postMessage.
window.addEventListener("message", (event) => {
if (event.source !== window) return;
if (event.data?.source === "dmplus-extension" && event.data.type === "dmplus:result") {
console.log(event.data.id, event.data.result);
}
});
window.postMessage(
{
id: crypto.randomUUID(),
request: { url: "https://example.com/files/manual.pdf", fileName: "manual.pdf", v: 1 },
source: "dmplus",
type: "dmplus:add",
},
location.origin
);Naslag
Statussen
| Naam | Beschrijving |
|---|---|
| pending | Wacht tot de gebruiker de download bevestigt. |
| rejected | De gebruiker heeft geweigerd of het venster gesloten. |
| downloading | Downloaden. |
| complete | Download voltooid. |
| failed | De download kon niet worden voltooid. |
Foutcodes
| Naam | Beschrijving |
|---|---|
| invalid-request | Misvormd bericht, een adres dat geen http(s) is of een adres in het lokale netwerk. |
| unsupported-version | Je pagina gebruikt een nieuwere protocolversie dan de extensie. |
| rate-limited | Meer dan 10 verzoeken per minuut vanaf je site. |
| too-many-pending | Er wachten al verzoeken op bevestiging. |
| not-found | Die id bestaat niet of is niet door je pagina aangevraagd. |
| internal | Interne fout; probeer het opnieuw. |
Limieten en privacy
Alleen http(s)-adressen worden geaccepteerd, zonder aangepaste headers of cookies. Elke site kan tot 10 verzoeken per minuut doen en ontvangt alleen de status van de downloads die zij heeft aangevraagd. Een openbare site kan geen bestanden uit het lokale netwerk van de gebruiker aanvragen.