Deskripsi
Gunakan chrome.downloads
API untuk memulai, memantau, memanipulasi, dan menelusuri download secara terprogram.
Izin
downloads
Anda 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
id
dariDownloadItem
yang 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, peristiwaonChanged
akan 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
filename
sudah 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.
onDeterminingFilename
memungkinkan 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
name
danvalue
ataubinaryValue
, 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
filename
disetel 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
DownloadItem
yang berakhir setelah ms tertentu dalam format ISO 8601 - endedBefore
string opsional
Membatasi hasil ke
DownloadItem
yang 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
DownloadItem
yangfilename
-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
DownloadItem
yangfinalUrl
-nya cocok dengan ekspresi reguler yang diberikan. - id
nomor opsional
id
DownloadItem
yang akan dikueri. - batas
nomor opsional
Jumlah maksimum
DownloadItem
yang cocok yang ditampilkan. Default-nya adalah 1.000. Setel ke 0 untuk menampilkan semuaDownloadItem
yang cocok. Lihatsearch
untuk mengetahui cara melihat hasil per halaman. - pantomim
string opsional
Jenis MIME file.
- orderBy
string[] opsional
Tetapkan elemen array ini ke properti
DownloadItem
untuk mengurutkan hasil penelusuran. Misalnya, menyetelorderBy=['startTime']
akan mengurutkanDownloadItem
berdasarkan 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
DownloadItem
yangfilename
atauurl
ataufinalUrl
-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
DownloadItem
yang dimulai setelah ms tertentu dalam format ISO 8601. - startedBefore
string opsional
Membatasi hasil ke
DownloadItem
yang 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
DownloadItem
yangtotalBytes
-nya lebih besar dari bilangan bulat yang diberikan. - totalBytesLess
nomor opsional
Membatasi hasil ke
DownloadItem
yangtotalBytes
-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
DownloadItem
yangurl
-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
filename
sudah ada. - filename
string
Target baru
DownloadItem.filename
DownloadItem
, sebagai jalur relatif terhadap direktori Download default pengguna, yang mungkin berisi subdirektori. Jalur absolut, jalur kosong, dan jalur yang berisi referensi kembali ".." akan diabaikan.filename
diabaikan jika ada pemrosesonDeterminingFilename
yang 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
callback
terlihat 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
callback
terlihat 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
callback
terlihat seperti:(downloadItem: DownloadItem, suggest: function) => void
- downloadItem
- saran
fungsi
Parameter
suggest
terlihat 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
callback
terlihat seperti:(downloadId: number) => void
- downloadId
angka
-