Deskripsi
Gunakan chrome.downloads API untuk memulai, memantau, memanipulasi, dan menelusuri download secara terprogram.
Izin
downloadsAnda harus mendeklarasikan izin "downloads" di manifes ekstensi untuk menggunakan API ini.
{
"name": "My extension",
...
"permissions": [
"downloads"
],
}
Contoh
Anda dapat menemukan contoh sederhana penggunaan chrome.downloads API di direktori examples/api/downloads. Untuk contoh lain dan bantuan dalam melihat kode sumber, lihat Contoh.
Jenis
BooleanDelta
Properti
-
current
boolean opsional
-
sebelumnya
boolean opsional
DangerType
file
Nama file download mencurigakan.
url
URL download diketahui berbahaya.
konten
File yang didownload diketahui berbahaya.
tidak umum
URL download tidak biasa didownload dan berpotensi membahayakan.
host
Download berasal dari host yang diketahui mendistribusikan biner berbahaya dan kemungkinan berbahaya.
tidak diinginkan
File yang didownload mungkin tidak diinginkan atau tidak aman. Misalnya, software ini dapat membuat perubahan pada setelan browser atau komputer.
aman
Download tidak menimbulkan bahaya yang diketahui pada komputer pengguna.
diterima
Pengguna telah menyetujui download berbahaya.
Enum
"file"
"url"
"content"
"tidak umum"
"host"
"tidak diinginkan"
"aman"
"accepted"
"allowlistedByPolicy"
"asyncScanning"
"asyncLocalPasswordScanning"
"passwordProtected"
"blockedTooLarge"
"sensitiveContentWarning"
"sensitiveContentBlock"
"deepScannedFailed"
"deepScannedSafe"
"deepScannedOpenedDangerous"
"promptForScanning"
"promptForLocalPasswordScanning"
"accountCompromise"
"blockedScanFailed"
DoubleDelta
Properti
-
current
nomor opsional
-
sebelumnya
nomor opsional
DownloadDelta
Properti
-
canResume
BooleanDelta opsional
Perubahan pada
canResume, jika ada. -
bahaya
StringDelta opsional
Perubahan pada
danger, jika ada. -
endTime
StringDelta opsional
Perubahan pada
endTime, jika ada. -
error
StringDelta opsional
Perubahan pada
error, jika ada. -
ada
BooleanDelta opsional
Perubahan pada
exists, jika ada. -
fileSize
DoubleDelta opsional
Perubahan pada
fileSize, jika ada. -
filename
StringDelta opsional
Perubahan pada
filename, jika ada. -
finalUrl
StringDelta opsional
Chrome 54+Perubahan pada
finalUrl, jika ada. -
id
angka
iddariDownloadItemyang berubah. -
pantomim
StringDelta opsional
Perubahan pada
mime, jika ada. -
dijeda
BooleanDelta opsional
Perubahan pada
paused, jika ada. -
startTime
StringDelta opsional
Perubahan pada
startTime, jika ada. -
dengan status tersembunyi akhir
StringDelta opsional
Perubahan pada
state, jika ada. -
totalBytes
DoubleDelta opsional
Perubahan pada
totalBytes, jika ada. -
url
StringDelta opsional
Perubahan pada
url, jika ada.
DownloadItem
Properti
-
byExtensionId
string opsional
ID untuk ekstensi yang memulai download ini jika download ini dimulai oleh ekstensi. Tidak berubah setelah ditetapkan.
-
byExtensionName
string opsional
Nama ekstensi yang dilokalkan yang memulai download ini jika download ini dimulai oleh ekstensi. Dapat berubah jika ekstensi mengubah namanya atau jika pengguna mengubah lokalitasnya.
-
bytesReceived
angka
Jumlah byte yang diterima sejauh ini dari host, tanpa mempertimbangkan kompresi file.
-
canResume
boolean
Benar jika download sedang berlangsung dan dijeda, atau jika download terhenti dan dapat dilanjutkan mulai dari tempat download terhenti.
-
bahaya
Indikasi apakah download ini dianggap aman atau diketahui mencurigakan.
-
endTime
string opsional
Waktu saat download berakhir dalam format ISO 8601. Dapat diteruskan langsung ke konstruktor Date:
chrome.downloads.search({}, function(items){items.forEach(function(item){if (item.endTime) console.log(new Date(item.endTime))})}) -
error
InterruptReason opsional
Alasan download terganggu. Beberapa jenis error HTTP dapat dikelompokkan dalam salah satu error yang diawali dengan
SERVER_. Error terkait jaringan dimulai denganNETWORK_, error terkait proses penulisan file ke sistem file dimulai denganFILE_, dan gangguan yang dimulai oleh pengguna dimulai denganUSER_. -
estimatedEndTime
string opsional
Perkiraan waktu saat download akan selesai dalam format ISO 8601. Dapat diteruskan langsung ke konstruktor Date:
chrome.downloads.search({}, function(items){items.forEach(function(item){if (item.estimatedEndTime) console.log(new Date(item.estimatedEndTime))})}) -
ada
boolean
Apakah file yang didownload masih ada. Informasi ini mungkin sudah tidak berlaku karena Chrome tidak otomatis memantau penghapusan file. Panggil
search() untuk memicu pemeriksaan keberadaan file. Saat pemeriksaan keberadaan selesai, jika file telah dihapus, peristiwaonChangedakan dipicu. Perhatikan bahwasearch() tidak menunggu hingga pemeriksaan keberadaan selesai sebelum ditampilkan, sehingga hasil darisearch() mungkin tidak mencerminkan sistem file secara akurat. Selain itu,search() dapat dipanggil sesering yang diperlukan, tetapi tidak akan memeriksa keberadaan file lebih sering daripada sekali setiap 10 detik. -
fileSize
angka
Jumlah byte dalam seluruh file setelah dekompresi, atau -1 jika tidak diketahui.
-
filename
string
Jalur lokal absolut.
-
finalUrl
string
Chrome 54+URL absolut tempat download ini dilakukan, setelah semua pengalihan.
-
id
angka
ID yang persisten di seluruh sesi browser.
-
samaran
boolean
False jika download ini dicatat dalam histori, true jika tidak dicatat.
-
pantomim
string
Jenis MIME file.
-
dijeda
boolean
Benar (True) jika download telah berhenti membaca data dari host, tetapi koneksi tetap terbuka.
-
perujuk
string
URL absolut.
-
startTime
string
Waktu saat download dimulai dalam format ISO 8601. Dapat diteruskan langsung ke konstruktor Date:
chrome.downloads.search({}, function(items){items.forEach(function(item){console.log(new Date(item.startTime))})}) -
dengan status tersembunyi akhir
Menunjukkan apakah download sedang berlangsung, terganggu, atau selesai.
-
totalBytes
angka
Jumlah byte dalam seluruh file, tanpa mempertimbangkan kompresi file, atau -1 jika tidak diketahui.
-
url
string
URL absolut yang memulai download ini, sebelum pengalihan apa pun.
DownloadOptions
Properti
-
body
string opsional
Isi postingan.
-
conflictAction
FilenameConflictAction opsional
Tindakan yang akan diambil jika
filenamesudah ada. -
filename
string opsional
Jalur file relatif ke direktori Download untuk berisi file yang didownload, yang mungkin berisi subdirektori. Jalur absolut, jalur kosong, dan jalur yang berisi referensi kembali ".." akan menyebabkan error.
onDeterminingFilenamememungkinkan menyarankan nama file setelah jenis MIME file dan nama file sementara ditentukan. -
headers
HeaderNameValuePair[] opsional
Header HTTP tambahan yang akan dikirim dengan permintaan jika URL menggunakan protokol HTTP[s]. Setiap header direpresentasikan sebagai kamus yang berisi kunci
namedanvalueataubinaryValue, yang dibatasi untuk yang diizinkan oleh XMLHttpRequest. -
method
HttpMethod opsional
Metode HTTP yang akan digunakan jika URL menggunakan protokol HTTP[S].
-
saveAs
boolean opsional
Gunakan pemilih file untuk mengizinkan pengguna memilih nama file, terlepas dari apakah
filenamedisetel atau sudah ada. -
url
string
URL yang akan didownload.
DownloadQuery
Properti
-
bytesReceived
nomor opsional
Jumlah byte yang diterima sejauh ini dari host, tanpa mempertimbangkan kompresi file.
-
bahaya
DangerType opsional
Indikasi apakah download ini dianggap aman atau diketahui mencurigakan.
-
endTime
string opsional
Waktu saat download berakhir dalam format ISO 8601.
-
endedAfter
string opsional
Membatasi hasil ke
DownloadItemyang berakhir setelah ms tertentu dalam format ISO 8601 -
endedBefore
string opsional
Membatasi hasil ke
DownloadItemyang berakhir sebelum ms tertentu dalam format ISO 8601. -
error
InterruptReason opsional
Alasan download terganggu.
-
ada
boolean opsional
Apakah file yang didownload ada;
-
fileSize
nomor opsional
Jumlah byte dalam seluruh file setelah dekompresi, atau -1 jika tidak diketahui.
-
filename
string opsional
Jalur lokal absolut.
-
filenameRegex
string opsional
Membatasi hasil ke
DownloadItemyangfilename-nya cocok dengan ekspresi reguler yang diberikan. -
finalUrl
string opsional
Chrome 54+URL absolut tempat download ini dilakukan, setelah semua pengalihan.
-
finalUrlRegex
string opsional
Chrome 54+Membatasi hasil ke
DownloadItemyangfinalUrl-nya cocok dengan ekspresi reguler yang diberikan. -
id
nomor opsional
idDownloadItemyang akan dikueri. -
batas
nomor opsional
Jumlah maksimum
DownloadItemyang cocok yang ditampilkan. Default-nya adalah 1.000. Setel ke 0 untuk menampilkan semuaDownloadItemyang cocok. Lihatsearchuntuk mengetahui cara melihat hasil per halaman. -
pantomim
string opsional
Jenis MIME file.
-
orderBy
string[] opsional
Tetapkan elemen array ini ke properti
DownloadItemuntuk mengurutkan hasil penelusuran. Misalnya, menyetelorderBy=['startTime']akan mengurutkanDownloadItemberdasarkan waktu mulai dalam urutan menaik. Untuk menentukan urutan menurun, beri awalan dengan tanda hubung: '-startTime'. -
dijeda
boolean opsional
Benar (True) jika download telah berhenti membaca data dari host, tetapi koneksi tetap terbuka.
-
kueri
string[] opsional
Array istilah penelusuran ini membatasi hasil ke
DownloadItemyangfilenameatauurlataufinalUrl-nya berisi semua istilah penelusuran yang tidak diawali dengan tanda hubung '-' dan tidak ada istilah penelusuran yang diawali dengan tanda hubung. -
startTime
string opsional
Waktu saat download dimulai dalam format ISO 8601.
-
startedAfter
string opsional
Membatasi hasil ke
DownloadItemyang dimulai setelah ms tertentu dalam format ISO 8601. -
startedBefore
string opsional
Membatasi hasil ke
DownloadItemyang dimulai sebelum ms tertentu dalam format ISO 8601. -
dengan status tersembunyi akhir
Negara bagian opsional
Menunjukkan apakah download sedang berlangsung, terganggu, atau selesai.
-
totalBytes
nomor opsional
Jumlah byte dalam seluruh file, tanpa mempertimbangkan kompresi file, atau -1 jika tidak diketahui.
-
totalBytesGreater
nomor opsional
Membatasi hasil ke
DownloadItemyangtotalBytes-nya lebih besar dari bilangan bulat yang diberikan. -
totalBytesLess
nomor opsional
Membatasi hasil ke
DownloadItemyangtotalBytes-nya kurang dari bilangan bulat yang diberikan. -
url
string opsional
URL absolut yang memulai download ini, sebelum pengalihan apa pun.
-
urlRegex
string opsional
Membatasi hasil ke
DownloadItemyangurl-nya cocok dengan ekspresi reguler yang diberikan.
FilenameConflictAction
membuat unik
Untuk menghindari duplikasi, filename diubah untuk menyertakan penghitung sebelum ekstensi nama file.
timpa
File yang ada akan ditimpa dengan file baru.
perintah
Pengguna akan diminta dengan dialog pemilih file.
Enum
"uniquify"
"overwrite"
"prompt"
FilenameSuggestion
Properti
-
conflictAction
FilenameConflictAction opsional
Tindakan yang akan diambil jika
filenamesudah ada. -
filename
string
Target baru
DownloadItem.filenameDownloadItem, sebagai jalur relatif terhadap direktori Download default pengguna, yang mungkin berisi subdirektori. Jalur absolut, jalur kosong, dan jalur yang berisi referensi kembali ".." akan diabaikan.filenamediabaikan jika ada pemrosesonDeterminingFilenameyang didaftarkan oleh ekstensi mana pun.
GetFileIconOptions
Properti
-
ukuran
nomor opsional
Ukuran ikon yang ditampilkan. Ikon akan berbentuk persegi dengan dimensi ukuran * ukuran piksel. Ukuran default dan terbesar untuk ikon adalah 32x32 piksel. Satu-satunya ukuran yang didukung adalah 16 dan 32. Menentukan ukuran lain adalah error.
HeaderNameValuePair
Properti
-
nama
string
Nama header HTTP.
-
nilai
string
Nilai header HTTP.
HttpMethod
Enum
"GET"
"POST"
InterruptReason
Enum
"FILE_FAILED"
"FILE_ACCESS_DENIED"
"FILE_NO_SPACE"
"FILE_NAME_TOO_LONG"
"FILE_TOO_LARGE"
"FILE_VIRUS_INFECTED"
"FILE_TRANSIENT_ERROR"
"FILE_BLOCKED"
"FILE_SECURITY_CHECK_FAILED"
"FILE_TOO_SHORT"
"FILE_HASH_MISMATCH"
"FILE_SAME_AS_SOURCE"
"NETWORK_FAILED"
"NETWORK_TIMEOUT"
"NETWORK_DISCONNECTED"
"NETWORK_SERVER_DOWN"
"NETWORK_INVALID_REQUEST"
"SERVER_FAILED"
"SERVER_NO_RANGE"
"SERVER_BAD_CONTENT"
"SERVER_UNAUTHORIZED"
"SERVER_CERT_PROBLEM"
"SERVER_FORBIDDEN"
"SERVER_UNREACHABLE"
"SERVER_CONTENT_LENGTH_MISMATCH"
"SERVER_CROSS_ORIGIN_REDIRECT"
"USER_CANCELED"
"USER_SHUTDOWN"
"CRASH"
State
in_progress
Download saat ini menerima data dari server.
terganggu
Terjadi error yang mengganggu koneksi dengan host file.
selesai
Download berhasil diselesaikan.
Enum
"in_progress"
"terganggu"
"selesai"
StringDelta
Properti
-
current
string opsional
-
sebelumnya
string opsional
UiOptions
Properti
-
diaktifkan
boolean
Aktifkan atau nonaktifkan UI download.
Metode
acceptDanger()
chrome.downloads.acceptDanger(
downloadId: number,
): Promise<void>
Minta pengguna untuk menerima download berbahaya. Hanya dapat dipanggil dari konteks yang terlihat (tab, jendela, atau pop-up tindakan browser/halaman). Tidak otomatis menyetujui download berbahaya. Jika download diterima, peristiwa onChanged akan diaktifkan, jika tidak, tidak akan terjadi apa-apa. Setelah semua data diambil ke dalam file sementara dan download tidak berbahaya atau bahaya telah diterima, file sementara akan diganti namanya menjadi nama file target, state berubah menjadi 'complete', dan onChanged diaktifkan.
Parameter
-
downloadId
angka
ID untuk
DownloadItem.
Hasil
-
Promise<void>
Chrome 96+
cancel()
chrome.downloads.cancel(
downloadId: number,
): Promise<void>
Membatalkan download. Saat callback dijalankan, download dibatalkan, selesai, terganggu, atau tidak ada lagi.
Parameter
-
downloadId
angka
ID download yang akan dibatalkan.
Hasil
-
Promise<void>
Chrome 96+
download()
chrome.downloads.download(
options: DownloadOptions,
): Promise<number>
Mendownload URL. Jika URL menggunakan protokol HTTP[S], permintaan akan menyertakan semua cookie yang saat ini ditetapkan untuk nama host-nya. Jika filename dan saveAs ditentukan, dialog Simpan Sebagai akan ditampilkan, yang sudah diisi sebelumnya dengan filename yang ditentukan. Jika download berhasil dimulai, callback akan dipanggil dengan downloadId DownloadItem baru. Jika terjadi error saat memulai download, callback akan dipanggil dengan downloadId=undefined dan runtime.lastError akan berisi string deskriptif. String error tidak dijamin tetap kompatibel dengan versi sebelumnya di antara rilis. Ekstensi tidak boleh memparsingnya.
Parameter
-
opsi
Apa yang harus didownload dan caranya.
Hasil
-
Promise<number>
Chrome 96+
erase()
chrome.downloads.erase(
query: DownloadQuery,
): Promise<number[]>
Menghapus DownloadItem yang cocok dari histori tanpa menghapus file yang didownload. Peristiwa onErased akan diaktifkan untuk setiap DownloadItem yang cocok dengan query, lalu callback akan dipanggil.
Parameter
-
kueri
Hasil
-
Promise<number[]>
Chrome 96+
getFileIcon()
chrome.downloads.getFileIcon(
downloadId: number,
options?: GetFileIconOptions,
): Promise<string | undefined>
Mengambil ikon untuk download yang ditentukan. Untuk download baru, ikon file tersedia setelah peristiwa onCreated diterima. Gambar yang ditampilkan oleh fungsi ini saat download sedang berlangsung mungkin berbeda dengan gambar yang ditampilkan setelah download selesai. Pengambilan ikon dilakukan dengan membuat kueri sistem operasi atau toolkit yang mendasarinya, bergantung pada platform. Oleh karena itu, ikon yang ditampilkan akan bergantung pada sejumlah faktor, termasuk status download, platform, jenis file terdaftar, dan tema visual. Jika ikon file tidak dapat ditentukan, runtime.lastError akan berisi pesan error.
Parameter
-
downloadId
angka
ID untuk download.
-
opsi
GetFileIconOptions opsional
Hasil
-
Promise<string | undefined>
Chrome 96+
open()
chrome.downloads.open(
downloadId: number,
): Promise<void>
Membuka file yang didownload sekarang jika DownloadItem selesai; jika tidak, menampilkan error melalui runtime.lastError. Metode ini memerlukan izin "downloads.open" selain izin "downloads". Peristiwa onChanged diaktifkan saat item dibuka untuk pertama kalinya. Metode ini hanya dapat dipanggil sebagai respons terhadap gestur pengguna.
Parameter
-
downloadId
angka
ID untuk file yang didownload.
Hasil
-
Promise<void>
Chrome 123+
pause()
chrome.downloads.pause(
downloadId: number,
): Promise<void>
Jeda download. Jika permintaan berhasil, download akan berada dalam status dijeda. Jika tidak, runtime.lastError akan berisi pesan error. Permintaan akan gagal jika download tidak aktif.
Parameter
-
downloadId
angka
ID download yang akan dijeda.
Hasil
-
Promise<void>
Chrome 96+
removeFile()
chrome.downloads.removeFile(
downloadId: number,
): Promise<void>
Hapus file yang didownload jika ada dan DownloadItem selesai; jika tidak, tampilkan error melalui runtime.lastError.
Parameter
-
downloadId
angka
Hasil
-
Promise<void>
Chrome 96+
resume()
chrome.downloads.resume(
downloadId: number,
): Promise<void>
Melanjutkan download yang dijeda. Jika permintaan berhasil, download sedang berlangsung dan tidak dijeda. Jika tidak, runtime.lastError akan berisi pesan error. Permintaan akan gagal jika download tidak aktif.
Parameter
-
downloadId
angka
ID download yang akan dilanjutkan.
Hasil
-
Promise<void>
Chrome 96+
search()
chrome.downloads.search(
query: DownloadQuery,
): Promise<DownloadItem[]>
Temukan DownloadItem. Tetapkan query ke objek kosong untuk mendapatkan semua DownloadItem. Untuk mendapatkan DownloadItem tertentu, tetapkan hanya kolom id. Untuk melihat-lihat sejumlah besar item, tetapkan orderBy: ['-startTime'], tetapkan limit ke jumlah item per halaman, dan tetapkan startedAfter ke startTime item terakhir dari halaman terakhir.
Parameter
-
kueri
Hasil
-
Promise<DownloadItem[]>
Chrome 96+
setShelfEnabled()
chrome.downloads.setShelfEnabled(
enabled: boolean,
): void
Sebagai gantinya, gunakan setUiOptions.
Aktifkan atau nonaktifkan panel abu-abu di bagian bawah setiap jendela yang terkait dengan profil browser saat ini. Galeri akan dinonaktifkan selama setidaknya satu ekstensi telah menonaktifkannya. Mengaktifkan panel saat setidaknya satu ekstensi lain telah menonaktifkannya akan menampilkan error melalui runtime.lastError. Memerlukan izin "downloads.shelf" selain izin "downloads".
Parameter
-
diaktifkan
boolean
setUiOptions()
chrome.downloads.setUiOptions(
options: UiOptions,
): Promise<void>
Mengubah UI download setiap jendela yang terkait dengan profil browser saat ini. Selama setidaknya satu ekstensi telah menyetel UiOptions.enabled ke salah (false), UI download akan disembunyikan. Menetapkan UiOptions.enabled ke benar (true) saat setidaknya satu ekstensi lain menonaktifkannya akan menampilkan error melalui runtime.lastError. Memerlukan izin "downloads.ui" selain izin "downloads".
Parameter
-
opsi
Mengenkapsulasi perubahan pada UI download.
Hasil
-
Promise<void>
show()
chrome.downloads.show(
downloadId: number,
): void
Tampilkan file yang didownload di foldernya di file manager.
Parameter
-
downloadId
angka
ID untuk file yang didownload.
showDefaultFolder()
chrome.downloads.showDefaultFolder(): void
Tampilkan folder Download default di pengelola file.
Acara
onChanged
chrome.downloads.onChanged.addListener(
callback: function,
)
Saat properti DownloadItem berubah, kecuali bytesReceived dan estimatedEndTime, peristiwa ini akan diaktifkan dengan downloadId dan objek yang berisi properti yang berubah.
Parameter
-
callback
fungsi
Parameter
callbackterlihat seperti:(downloadDelta: DownloadDelta) => void
-
downloadDelta
-
onCreated
chrome.downloads.onCreated.addListener(
callback: function,
)
Peristiwa ini dipicu dengan objek DownloadItem saat download dimulai.
Parameter
-
callback
fungsi
Parameter
callbackterlihat seperti:(downloadItem: DownloadItem) => void
-
downloadItem
-
onDeterminingFilename
chrome.downloads.onDeterminingFilename.addListener(
callback: function,
)
Selama proses penentuan nama file, ekstensi akan diberi kesempatan untuk mengganti DownloadItem.filename target. Setiap ekstensi hanya dapat mendaftarkan satu pemroses untuk peristiwa ini. Setiap pemroses harus memanggil suggest tepat satu kali, baik secara sinkron maupun asinkron. Jika pemroses memanggil suggest secara asinkron, pemroses harus menampilkan true. Jika pemroses tidak memanggil suggest secara serentak maupun menampilkan true, maka suggest akan dipanggil secara otomatis. DownloadItem tidak akan selesai hingga semua pemroses memanggil suggest. Listener dapat memanggil suggest tanpa argumen apa pun agar download dapat menggunakan downloadItem.filename untuk nama filenya, atau meneruskan objek suggestion ke suggest untuk mengganti nama file target. Jika lebih dari satu ekstensi menggantikan nama file, ekstensi terakhir yang diinstal yang pemroses peristiwanya meneruskan objek suggestion ke suggest akan menang. Untuk menghindari kebingungan mengenai ekstensi mana yang akan menang, pengguna tidak boleh menginstal ekstensi yang dapat menimbulkan konflik. Jika download dimulai oleh download dan nama file target diketahui sebelum jenis MIME dan nama file sementara ditentukan, teruskan filename ke download.
Parameter
-
callback
fungsi
Parameter
callbackterlihat seperti:(downloadItem: DownloadItem, suggest: function) => void
-
downloadItem
-
saran
fungsi
Parameter
suggestterlihat seperti:(suggestion?: FilenameSuggestion) => void
-
saran
FilenameSuggestion opsional
-
-
onErased
chrome.downloads.onErased.addListener(
callback: function,
)
Diaktifkan dengan downloadId saat download dihapus dari histori.
Parameter
-
callback
fungsi
Parameter
callbackterlihat seperti:(downloadId: number) => void
-
downloadId
angka
-