Untuk pengembang
Kirim unduhan ke Download Manager Plus dari situs web mana pun, dengan tautan atau dengan JavaScript.
Tautan universal
Tautkan ke /add dengan alamat file. Jika pengguna memiliki ekstensi, mereka diminta mengonfirmasi unduhan; jika tidak, mereka dapat memasangnya atau mengunduh file secara langsung.
<a href="https://download.extension.lat/add?name=manual.pdf&url=https%3A%2F%2Fexample.com%2Ffiles%2Fmanual.pdf" rel="nofollow">
Unduh dengan Download Manager Plus
</a>| Nama | Deskripsi |
|---|---|
| url | Alamat http(s) file. Wajib. |
| name | Nama file yang disarankan. Opsional; nama dibersihkan sebelum disimpan. |
Tombol “Tambahkan ke Download Manager Plus”
Tautan yang ditata sebagai tombol. Tautan ini berfungsi tanpa JavaScript; dengan skrip pembantu, tautan memakai jembatan saat jembatan tersedia.
Pratinjau
Tambahkan ke 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"
>
Tambahkan ke 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>Skrip pembantu
Skrip kecil tanpa dependensi yang mengekspos window.DownloadManagerPlus. Tipe TypeScript ada di dmplus.d.ts.
<script src="https://download.extension.lat/sdk/dmplus.js" defer></script>
<!-- Opsional: tautan dengan data-dmplus-url memakai jembatan. -->
<script src="https://download.extension.lat/sdk/dmplus.js" data-dmplus-auto defer></script>Tambahkan data-dmplus-auto pada tag skrip agar tautan dengan data-dmplus-url memakai jembatan. Jangan lakukan ini pada halaman yang menampilkan tautan yang ditulis pengguna Anda: di situs tepercaya, jembatan mengunduh tanpa bertanya.
// Memakai jembatan jika tersedia di situs Anda; jika tidak, membuka tautan universal.
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"…
}Jembatan JavaScript
Jika pengguna mengizinkan situs web mengirim unduhan (panduan selamat datang menawarkannya untuk setiap situs) atau mengizinkan situs Anda dari ikon ekstensi, halaman Anda dapat meminta unduhan dan memeriksa statusnya dengan window.postMessage. Pengguna tetap mengonfirmasi setiap unduhan, kecuali mereka menandai situs Anda (https) sebagai tepercaya.
| Nama | Deskripsi |
|---|---|
| dmplus:add | Meminta unduhan: url, ditambah fileName dan folder yang opsional. |
| dmplus:status | Memeriksa status unduhan yang diminta halaman Anda sendiri. |
| dmplus:result | Balasan ekstensi, dengan id yang sama yang Anda kirim. |
| dmplus:ready | Ekstensi mengumumkan bahwa jembatan aktif di halaman. |
| dmplus:ping | Menanyakan apakah jembatan aktif; ekstensi membalas dengan dmplus:ready. |
// Tanpa skrip pembantu: protokol yang sama dengan 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
);Referensi
Status
| Nama | Deskripsi |
|---|---|
| pending | Menunggu pengguna mengonfirmasi unduhan. |
| rejected | Pengguna menolaknya atau menutup jendela. |
| downloading | Mengunduh. |
| complete | Unduhan selesai. |
| failed | Unduhan tidak dapat diselesaikan. |
Kode kesalahan
| Nama | Deskripsi |
|---|---|
| invalid-request | Pesan yang rusak, alamat yang bukan http(s), atau alamat jaringan lokal. |
| unsupported-version | Halaman Anda memakai versi protokol yang lebih baru daripada ekstensi. |
| rate-limited | Lebih dari 10 permintaan per menit dari situs Anda. |
| too-many-pending | Permintaan sudah menunggu konfirmasi. |
| not-found | ID itu tidak ada atau tidak diminta oleh halaman Anda. |
| internal | Kesalahan internal; coba lagi. |
Batasan dan privasi
Hanya alamat http(s) yang diterima, tanpa header atau cookie khusus. Setiap situs dapat membuat hingga 10 permintaan per menit dan hanya menerima status unduhan yang dimintanya. Situs publik tidak dapat meminta file dari jaringan lokal pengguna.