Deskripsi
Gunakan chrome.runtime
API untuk mengambil pekerja layanan, menampilkan detail manifes, serta memproses dan merespons peristiwa dalam siklus proses ekstensi. Anda juga dapat menggunakan API ini untuk mengonversi jalur relatif URL menjadi URL yang sepenuhnya memenuhi syarat.
Sebagian besar anggota API ini tidak memerlukan izin apa pun. Izin ini diperlukan untuk connectNative()
, sendNativeMessage()
, dan onNativeConnect
.
Contoh berikut menunjukkan cara mendeklarasikan izin "nativeMessaging"
dalam manifes:
manifest.json:
{
"name": "My extension",
...
"permissions": [
"nativeMessaging"
],
...
}
Konsep dan penggunaan
Runtime API menyediakan metode untuk mendukung sejumlah area yang dapat digunakan ekstensi Anda:
- Pesan diteruskan
- Ekstensi Anda dapat berkomunikasi dengan berbagai konteks dalam ekstensi dan juga dengan ekstensi lain menggunakan metode dan peristiwa berikut:
connect()
,onConnect
,onConnectExternal
,sendMessage()
,onMessage
, danonMessageExternal
. Selain itu, ekstensi Anda dapat meneruskan pesan ke aplikasi native di perangkat pengguna menggunakanconnectNative()
dansendNativeMessage()
.
- Mengakses metadata platform dan ekstensi
- Metode ini memungkinkan Anda mengambil beberapa bagian metadata tertentu tentang ekstensi dan platform. Metode dalam kategori ini mencakup
getManifest()
, dangetPlatformInfo()
. - Mengelola opsi dan siklus proses ekstensi
- Properti ini memungkinkan Anda melakukan beberapa operasi meta pada ekstensi, dan menampilkan halaman opsi.
Metode dan peristiwa dalam kategori ini mencakup
onInstalled
,onStartup
,openOptionsPage()
,reload()
,requestUpdateCheck()
, dansetUninstallURL()
. - Utilitas pendukung
- Metode ini memberikan utilitas seperti konversi representasi resource internal ke
format eksternal. Metode dalam kategori ini mencakup
getURL()
. - Utilitas mode kios
- Metode ini hanya tersedia di ChromeOS, dan terutama untuk mendukung penerapan kios.
Metode dalam kategori ini mencakup
restart()
danrestartAfterDelay()
`.
Perilaku ekstensi yang diekstrak
Saat ekstensi yang tidak dipaketkan dimuat ulang, ini akan diperlakukan sebagai update. Ini berarti peristiwa chrome.runtime.onInstalled
akan diaktifkan dengan alasan "update"
. Ini termasuk saat ekstensi dimuat ulang dengan chrome.runtime.reload()
.
Kasus penggunaan
Menambahkan gambar ke halaman web
Agar halaman web dapat mengakses aset yang dihosting di domain lain, halaman tersebut harus menentukan URL lengkap resource (misalnya, <img src="https://example.com/logo.png">
). Hal yang sama berlaku untuk menyertakan aset ekstensi di halaman web. Dua perbedaannya adalah aset ekstensi harus diekspos sebagai resource yang dapat diakses web dan biasanya skrip konten bertanggung jawab untuk memasukkan aset ekstensi.
Dalam contoh ini, ekstensi akan menambahkan logo.png
ke halaman tempat skrip
konten dimasukkan menggunakan runtime.getURL()
untuk membuat
URL yang sepenuhnya memenuhi syarat. Namun, pertama-tama, aset harus dideklarasikan sebagai resource yang dapat diakses web dalam manifes.
manifest.json:
{
...
"web_accessible_resources": [
{
"resources": [ "logo.png" ],
"matches": [ "https://*/*" ]
}
],
...
}
content.js:
{ // Block used to avoid setting global variables
const img = document.createElement('img');
img.src = chrome.runtime.getURL('logo.png');
document.body.append(img);
}
Mengirim data dari skrip konten ke pekerja layanan
Umumnya, skrip konten ekstensi memerlukan data yang dikelola oleh bagian ekstensi lain, seperti pekerja layanan. Mirip seperti dua jendela browser yang dibuka ke halaman web yang sama, kedua konteks ini tidak dapat mengakses nilai satu sama lain secara langsung. Sebagai gantinya, ekstensi dapat menggunakan pengiriman pesan untuk berkoordinasi di seluruh konteks yang berbeda ini.
Dalam contoh ini, skrip konten memerlukan beberapa data dari pekerja layanan ekstensi untuk menginisialisasi UI-nya. Untuk mendapatkan data ini, pesan get-user-data
yang ditentukan developer akan diteruskan ke pekerja layanan, dan aplikasi akan merespons dengan salinan informasi pengguna.
content.js:
// 1. Send a message to the service worker requesting the user's data
chrome.runtime.sendMessage('get-user-data', (response) => {
// 3. Got an asynchronous response with the data from the service worker
console.log('received user data', response);
initializeUI(response);
});
service-worker.js:
// Example of a simple user data object
const user = {
username: 'demo-user'
};
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
// 2. A page requested user data, respond with a copy of `user`
if (message === 'get-user-data') {
sendResponse(user);
}
});
Kumpulkan masukan tentang uninstal
Banyak ekstensi menggunakan survei pasca-uninstal untuk memahami cara ekstensi dapat menyalurkan pengguna dengan lebih baik dan meningkatkan retensi. Contoh berikut menunjukkan cara menambahkan fungsi ini.
background.js:
chrome.runtime.onInstalled.addListener(details => {
if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
chrome.runtime.setUninstallURL('https://example.com/extension-survey');
}
});
Contoh
Lihat Demo Manifes V3 - Resource yang Dapat Diakses Web untuk contoh Runtime API lainnya.
Jenis
ContextFilter
Filter yang akan dicocokkan dengan konteks ekstensi tertentu. Konteks yang cocok harus cocok dengan semua filter yang ditentukan; setiap filter yang tidak ditentukan akan cocok dengan semua konteks yang tersedia. Dengan demikian, filter `{}` akan cocok dengan semua konteks yang tersedia.
Properti
-
contextIds
string[] opsional
-
contextTypes
ContextType[] opsional
-
documentIds
string[] opsional
-
documentOrigins
string[] opsional
-
documentUrls
string[] opsional
-
frameIds
number[] opsional
-
samaran
boolean opsional
-
tabIds
number[] opsional
-
windowIds
number[] opsional
ContextType
Enum
"TAB"
Menentukan jenis konteks sebagai tab
"POPUP"
Menentukan jenis konteks sebagai jendela pop-up ekstensi
"BACKGROUND"
Menentukan jenis konteks sebagai pekerja layanan.
"OFFSCREEN_DOCUMENT"
Menentukan jenis konteks sebagai dokumen di balik layar.
"SIDE_Panel"
Menentukan jenis konteks sebagai panel samping.
ExtensionContext
Konteks konten ekstensi hosting.
Properti
-
contextId
string
ID unik untuk konteks ini
-
contextType
Jenis konteks yang sesuai.
-
documentId
string opsional
UUID untuk dokumen yang terkait dengan konteks ini, atau tidak ditentukan jika konteks ini dihosting tidak dalam dokumen.
-
documentOrigin
string opsional
Asal dokumen yang terkait dengan konteks ini, atau tidak ditentukan jika konteksnya tidak dihosting dalam dokumen.
-
documentUrl
string opsional
URL dokumen yang terkait dengan konteks ini, atau tidak ditentukan jika konteksnya tidak dihosting dalam dokumen.
-
frameId
angka
ID frame untuk konteks ini, atau -1 jika konteks ini tidak di-host dalam frame.
-
samaran
boolean
Apakah konteks dikaitkan dengan profil samaran atau tidak.
-
tabId
angka
ID tab untuk konteks ini, atau -1 jika konteks ini tidak dihosting di tab.
-
windowId
angka
ID jendela untuk konteks ini, atau -1 jika konteks ini tidak dihosting di jendela.
MessageSender
Objek yang berisi informasi tentang konteks skrip yang mengirim pesan atau permintaan.
Properti
-
documentId
string opsional
Chrome 106+UUID dokumen yang membuka koneksi.
-
documentLifecycle
string opsional
Chrome 106+Siklus proses dokumen yang membuka koneksi pada saat port dibuat. Perhatikan bahwa status siklus proses dokumen mungkin telah berubah sejak pembuatan port.
-
frameId
nomor opsional
Frame yang membuka koneksi. 0 untuk frame tingkat atas, positif untuk frame turunan. Kolom ini hanya akan ditetapkan jika
tab
telah ditetapkan. -
id
string opsional
ID ekstensi yang membuka koneksi, jika ada.
-
nativeApplication
string opsional
Chrome 74 dan yang lebih baruNama aplikasi native yang membuka koneksi, jika ada.
-
asal
string opsional
Chrome 80 dan yang lebih baruAsal halaman atau frame yang membuka koneksi. URL dapat berbeda dari properti URL (mis., about:blank) atau dapat juga buram (misalnya, iframe sandbox). Hal ini berguna untuk mengidentifikasi apakah origin dapat dipercaya jika kami tidak dapat langsung membedakannya dari URL.
-
Subscription
Tab opsional
tabs.Tab
yang membuka koneksi, jika ada. Properti ini hanya akan ada jika koneksi dibuka dari tab (termasuk skrip konten), dan hanya jika penerimanya adalah ekstensi, bukan aplikasi. -
tlsChannelId
string opsional
ID saluran TLS halaman atau frame yang membuka koneksi, jika diminta oleh ekstensi, dan jika tersedia.
-
url
string opsional
URL halaman atau frame yang membuka koneksi. Jika pengirim berada dalam iframe, ini akan berupa URL iframe, bukan URL halaman yang menghostingnya.
OnInstalledReason
Alasan peristiwa ini dikirim.
Enum
"install"
Menentukan alasan peristiwa sebagai penginstalan.
"update"
Menentukan alasan peristiwa sebagai update ekstensi.
"chrome_update"
Menentukan alasan peristiwa sebagai update Chrome.
"shared_module_update"
Menentukan alasan peristiwa sebagai update untuk modul bersama.
OnRestartRequiredReason
Alasan peristiwa tersebut dikirim. 'app_update' digunakan saat mulai ulang diperlukan karena aplikasi diupdate ke versi yang lebih baru. 'os_update' digunakan jika mulai ulang diperlukan karena browser/OS diupdate ke versi yang lebih baru. 'periodic' digunakan bila sistem berjalan selama lebih dari waktu beroperasi yang diizinkan yang ditetapkan dalam kebijakan perusahaan.
Enum
"app_update"
Menentukan alasan peristiwa sebagai update pada aplikasi.
"os_update"
Menentukan alasan peristiwa sebagai update pada sistem operasi.
"periodic"
Menentukan alasan peristiwa sebagai mulai ulang aplikasi secara berkala.
PlatformArch
Arsitektur prosesor mesin.
Enum
"arm"
Menentukan arsitektur pemroses sebagai arm.
"arm64"
Menentukan arsitektur pemroses sebagai arm64.
"x86-32"
Menentukan arsitektur pemroses sebagai x86-32.
"x86-64"
Menentukan arsitektur pemroses sebagai x86-64.
"mips"
Menentukan arsitektur pemroses sebagai mips.
"mips64"
Menentukan arsitektur pemroses sebagai mips64.
PlatformInfo
Objek yang berisi informasi tentang platform saat ini.
Properti
-
arch
Arsitektur prosesor mesin.
-
nacl_arch
Arsitektur native client. Cara ini mungkin berbeda dengan arch di beberapa platform.
-
os
Sistem operasi yang menjalankan Chrome.
PlatformNaclArch
Arsitektur native client. Cara ini mungkin berbeda dengan arch di beberapa platform.
Enum
"arm"
Menentukan arsitektur klien native sebagai grup.
"x86-32"
Menentukan arsitektur native client sebagai x86-32.
"x86-64"
Menentukan arsitektur native client sebagai x86-64.
"mips"
Menentukan arsitektur klien native sebagai mips.
"mips64"
Menentukan arsitektur klien native sebagai mips64.
PlatformOs
Sistem operasi yang menjalankan Chrome.
Enum
"mac"
Menentukan sistem operasi MacOS.
"win"
Menentukan sistem operasi Windows.
"android"
Menentukan sistem operasi Android.
"cros"
Menentukan sistem operasi Chrome.
"linux"
Menentukan sistem operasi Linux.
"openbsd"
Menentukan sistem operasi OpenBSD.
"fuchsia"
Menentukan sistem operasi Fuchsia.
Port
Objek yang memungkinkan komunikasi dua arah dengan halaman lain. Lihat Koneksi jangka panjang untuk informasi selengkapnya.
Properti
-
name
string
Nama port, seperti yang ditentukan dalam panggilan ke
runtime.connect
. -
onDisconnect
Peristiwa<functionvoidvoid>
Diaktifkan saat port terputus dari ujung lainnya.
runtime.lastError
dapat disetel jika port terputus karena error. Jika port ditutup melalui disconnect, peristiwa ini hanya akan diaktifkan di ujung lain. Peristiwa ini diaktifkan paling banyak satu kali (lihat juga Masa aktif port).Fungsi
onDisconnect.addListener
terlihat seperti:(callback: function) => {...}
-
onMessage
Peristiwa<functionvoidvoid>
Peristiwa ini diaktifkan saat postMessage dipanggil oleh ujung lain port.
Fungsi
onMessage.addListener
terlihat seperti:(callback: function) => {...}
-
pengirim
MessageSender opsional
Properti ini hanya akan ada pada port yang diteruskan ke pemroses onConnect / onConnectExternal / onConnectNative.
-
putuskan koneksi
void
Segera putuskan sambungan port. Memanggil
disconnect()
pada port yang sudah terputus tidak akan berpengaruh. Jika port terputus, tidak ada peristiwa baru yang akan dikirim ke port ini.Fungsi
disconnect
terlihat seperti:() => {...}
-
postMessage
void
Kirim pesan ke ujung port lainnya. Jika port terputus, pesan error akan muncul.
Fungsi
postMessage
terlihat seperti:(message: any) => {...}
-
pesan
apa pun
Chrome 52 dan yang lebih baruPesan yang akan dikirim. Objek ini harus JSON-ifiable.
-
RequestUpdateCheckStatus
Hasil pemeriksaan update.
Enum
"throttled"
Menentukan bahwa pemeriksaan status telah di-throttle. Hal ini dapat terjadi setelah pemeriksaan berulang dalam waktu singkat.
"no_update"
Menentukan bahwa tidak ada update yang tersedia untuk diinstal.
"update_available"
Menentukan bahwa ada update yang tersedia untuk diinstal.
Properti
id
ID ekstensi/aplikasi.
Jenis
string
lastError
Diisi dengan pesan error jika pemanggilan fungsi API gagal; jika tidak, tidak ditentukan. Ini hanya ditentukan dalam cakupan callback fungsi tersebut. Jika terjadi error, tetapi runtime.lastError
tidak diakses dalam callback, pesan akan dicatat ke konsol yang mencantumkan fungsi API yang menghasilkan error tersebut. Fungsi API yang menampilkan promise tidak menetapkan properti ini.
Jenis
objek
Properti
-
pesan
string opsional
Detail tentang error yang terjadi.
Metode
connect()
chrome.runtime.connect(
extensionId?: string,
connectInfo?: object,
)
Berupaya menghubungkan pemroses dalam ekstensi (seperti halaman latar belakang), atau ekstensi/aplikasi lainnya. Hal ini berguna untuk skrip konten yang terhubung ke proses ekstensi, komunikasi antar-aplikasi/ekstensi, dan pesan web. Perhatikan bahwa ini tidak terhubung ke pemroses mana pun dalam skrip konten. Ekstensi dapat terhubung ke skrip konten yang disematkan di tab melalui tabs.connect
.
Parameter
-
extensionId
string opsional
ID ekstensi yang akan dihubungkan. Jika dihilangkan, koneksi akan dicoba dengan ekstensi Anda sendiri. Diperlukan jika mengirim pesan dari halaman web untuk pesan web.
-
connectInfo
objek opsional
-
includeTlsChannelId
boolean opsional
Apakah ID saluran TLS akan diteruskan ke onConnectExternal untuk proses yang memproses peristiwa koneksi.
-
name
string opsional
Akan diteruskan ke onConnect untuk proses yang memproses peristiwa koneksi.
-
Hasil
-
Port yang dapat digunakan untuk mengirim dan menerima pesan. Peristiwa onDisconnect port akan diaktifkan jika ekstensi tidak ada.
connectNative()
chrome.runtime.connectNative(
application: string,
)
Menghubungkan ke aplikasi native di mesin host. Metode ini memerlukan izin "nativeMessaging"
. Lihat Pesan Native untuk informasi selengkapnya.
Parameter
-
application
string
Nama aplikasi terdaftar yang akan dihubungkan.
Hasil
-
Port yang dapat digunakan untuk mengirim dan menerima pesan dengan aplikasi
getBackgroundPage()
chrome.runtime.getBackgroundPage(
callback?: function,
)
Mengambil objek 'window' JavaScript untuk halaman latar belakang yang berjalan di dalam aplikasi/ekstensi saat ini. Jika halaman latar belakang adalah halaman peristiwa, sistem akan memastikan halaman tersebut dimuat sebelum memanggil callback. Jika tidak ada halaman latar belakang, terjadi error.
Parameter
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(backgroundPage?: Window) => void
-
backgroundPage
Jendela opsional
Objek 'window' JavaScript untuk halaman latar belakang.
-
Hasil
-
Promise<Window | undefined>
Chrome 99 dan yang lebih baruPromise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
getContexts()
chrome.runtime.getContexts(
filter: ContextFilter,
callback?: function,
)
Mengambil informasi tentang konteks aktif yang terkait dengan ekstensi ini
Parameter
-
filter
Filter untuk menemukan konteks yang cocok. Konteks akan cocok jika cocok dengan semua kolom yang ditentukan dalam filter. Kolom yang tidak ditentukan dalam filter cocok dengan semua konteks.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(contexts: ExtensionContext[]) => void
-
konteks
Konteks yang cocok, jika ada.
-
Hasil
-
Promise<ExtensionContext[]>
Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
getManifest()
chrome.runtime.getManifest()
Menampilkan detail tentang aplikasi atau ekstensi dari manifes. Objek yang ditampilkan adalah serialisasi file manifes lengkap.
Hasil
-
objek
Detail manifes.
getPackageDirectoryEntry()
chrome.runtime.getPackageDirectoryEntry(
callback?: function,
)
Menampilkan DirectoryEntry untuk direktori paket.
Parameter
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(directoryEntry: DirectoryEntry) => void
-
directoryEntry
DirectoryEntry
-
Hasil
-
Promise<DirectoryEntry>
Chrome 122 dan yang lebih baruPromise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
getPlatformInfo()
chrome.runtime.getPlatformInfo(
callback?: function,
)
Menampilkan informasi tentang platform saat ini.
Parameter
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(platformInfo: PlatformInfo) => void
-
platformInfo
-
Hasil
-
Promise<PlatformInfo>
Chrome 99 dan yang lebih baruPromise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
getURL()
chrome.runtime.getURL(
path: string,
)
Mengonversi jalur relatif dalam direktori penginstalan aplikasi/ekstensi menjadi URL yang sepenuhnya memenuhi syarat.
Parameter
-
jalur
string
Jalur ke sumber daya dalam aplikasi/ekstensi yang dinyatakan relatif terhadap direktori penginstalannya.
Hasil
-
string
URL yang sepenuhnya memenuhi syarat untuk resource.
openOptionsPage()
chrome.runtime.openOptionsPage(
callback?: function,
)
Buka halaman opsi Ekstensi, jika memungkinkan.
Perilaku yang akurat mungkin bergantung pada kunci [options_ui](https://developer.chrome.com/docs/extensions/develop/ui/options-page#embedded_options)
atau [options_page](https://developer.chrome.com/docs/extensions/develop/ui/options-page#full_page)
manifes Anda, atau apa yang perlu didukung Chrome pada saat itu. Misalnya, halaman dapat dibuka di tab baru, dalam chrome://extensions, dalam Aplikasi, atau mungkin hanya memfokuskan halaman opsi yang terbuka. Tindakan ini tidak akan menyebabkan halaman pemanggil dimuat ulang.
Jika Ekstensi Anda tidak menyatakan halaman opsi, atau Chrome gagal membuatnya karena alasan lain, callback akan menetapkan lastError
.
Parameter
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:() => void
Hasil
-
Promise<void>
Chrome 99 dan yang lebih baruPromise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
reload()
chrome.runtime.reload()
Memuat ulang aplikasi atau ekstensi. Metode ini tidak didukung dalam mode kios. Untuk mode kios, gunakan metode chrome.runtime.restart().
requestUpdateCheck()
chrome.runtime.requestUpdateCheck(
callback?: function,
)
Meminta pemeriksaan update langsung dilakukan untuk aplikasi/ekstensi ini.
Penting: Sebagian besar ekstensi/aplikasi tidak boleh menggunakan metode ini, karena Chrome sudah melakukan pemeriksaan otomatis setiap beberapa jam, dan Anda dapat memproses peristiwa runtime.onUpdateAvailable
tanpa perlu memanggil requestUpdateCheck.
Metode ini hanya sesuai untuk dipanggil dalam situasi yang sangat terbatas, seperti saat ekstensi Anda berkomunikasi dengan layanan backend, dan layanan backend telah menentukan bahwa versi ekstensi klien sudah sangat usang dan Anda ingin meminta pengguna untuk melakukan update. Sebagian besar penggunaan requestUpdateCheck lainnya, seperti memanggilnya tanpa syarat berdasarkan timer yang berulang, mungkin hanya digunakan untuk menyia-nyiakan resource klien, jaringan, dan server.
Catatan: Saat dipanggil dengan callback, fungsi ini akan menampilkan kedua properti sebagai argumen terpisah yang diteruskan ke callback, bukan menampilkan objek.
Parameter
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(result: object) => void
-
hasil
objek
Chrome 109+Objek RequestUpdateCheckResult yang menyimpan status pemeriksaan update dan detail hasil jika ada update yang tersedia
-
status
Hasil pemeriksaan update.
-
versi
string opsional
Jika tersedia, update berisi versi update yang tersedia.
-
-
Hasil
-
Promise<object>
Chrome 109+Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
restart()
chrome.runtime.restart()
Mulai ulang perangkat ChromeOS saat aplikasi berjalan dalam mode kios. Jika tidak, perangkat tidak akan beroperasi.
restartAfterDelay()
chrome.runtime.restartAfterDelay(
seconds: number,
callback?: function,
)
Mulai ulang perangkat ChromeOS saat aplikasi berjalan dalam mode kios setelah detik yang ditentukan. Jika dipanggil lagi sebelum waktu berakhir, mulai ulang akan tertunda. Jika dipanggil dengan nilai -1, mulai ulang akan dibatalkan. Ini adalah tanpa pengoperasian dalam mode non-kios. Ini hanya diperbolehkan untuk dipanggil berulang kali oleh ekstensi pertama untuk memanggil API ini.
Parameter
-
detik
angka
Waktu untuk menunggu dalam detik sebelum memulai ulang perangkat, atau -1 untuk membatalkan mulai ulang terjadwal.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:() => void
Hasil
-
Promise<void>
Chrome 99 dan yang lebih baruPromise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
sendMessage()
chrome.runtime.sendMessage(
extensionId?: string,
message: any,
options?: object,
callback?: function,
)
Mengirim satu pesan ke pemroses peristiwa dalam ekstensi Anda atau ekstensi/aplikasi yang berbeda. Serupa dengan runtime.connect
tetapi hanya mengirim satu pesan, dengan respons opsional. Jika mengirim ke ekstensi Anda, peristiwa runtime.onMessage
akan diaktifkan di setiap frame ekstensi (kecuali untuk frame pengirim), atau runtime.onMessageExternal
, jika ekstensi yang berbeda. Perlu diperhatikan bahwa ekstensi tidak dapat mengirim pesan ke skrip konten menggunakan metode ini. Untuk mengirim pesan ke skrip konten, gunakan tabs.sendMessage
.
Parameter
-
extensionId
string opsional
ID ekstensi yang akan dikirimi pesan. Jika dihapus, pesan akan dikirim ke ekstensi/aplikasi Anda sendiri. Diperlukan jika mengirim pesan dari halaman web untuk web messaging.
-
pesan
apa pun
Pesan yang akan dikirim. Pesan ini harus berupa objek JSON-ifiable.
-
opsi
objek opsional
-
includeTlsChannelId
boolean opsional
Apakah ID saluran TLS akan diteruskan ke onMessageExternal untuk proses yang memproses peristiwa koneksi.
-
-
callback
fungsi opsional
Chrome 99 dan yang lebih baruParameter
callback
terlihat seperti:(response: any) => void
-
respons
apa pun
Objek respons JSON yang dikirim oleh pengendali pesan. Jika terjadi error saat menghubungkan ke ekstensi, callback akan dipanggil tanpa argumen dan
runtime.lastError
akan disetel ke pesan error.
-
Hasil
-
Janji<apa pun>
Chrome 99 dan yang lebih baruPromise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
sendNativeMessage()
chrome.runtime.sendNativeMessage(
application: string,
message: object,
callback?: function,
)
Mengirim satu pesan ke aplikasi native. Metode ini memerlukan izin "nativeMessaging"
.
Parameter
-
application
string
Nama host pesan native.
-
pesan
objek
Pesan yang akan diteruskan ke host pesan native.
-
callback
fungsi opsional
Chrome 99 dan yang lebih baruParameter
callback
terlihat seperti:(response: any) => void
-
respons
apa pun
Pesan respons yang dikirim oleh host pesan native. Jika terjadi error saat menghubungkan ke host pesan native, callback akan dipanggil tanpa argumen dan
runtime.lastError
akan disetel ke pesan error.
-
Hasil
-
Janji<apa pun>
Chrome 99 dan yang lebih baruPromise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
setUninstallURL()
chrome.runtime.setUninstallURL(
url: string,
callback?: function,
)
Menetapkan URL yang akan dikunjungi saat uninstal. Layanan ini dapat digunakan untuk membersihkan data sisi server, melakukan analisis, dan menerapkan survei. Maksimum 1023 karakter.
Parameter
-
url
string
URL yang akan dibuka setelah ekstensi di-uninstal. URL ini harus memiliki skema http: atau https:. Menyetel string kosong agar tidak membuka tab baru setelah uninstal.
-
callback
fungsi opsional
Chrome 45+Parameter
callback
terlihat seperti:() => void
Hasil
-
Promise<void>
Chrome 99 dan yang lebih baruPromise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
Acara
onBrowserUpdateAvailable
chrome.runtime.onBrowserUpdateAvailable.addListener(
callback: function,
)
Gunakan runtime.onRestartRequired
.
Diaktifkan saat update Chrome tersedia, tetapi tidak langsung diinstal karena browser perlu dimulai ulang.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:() => void
onConnect
chrome.runtime.onConnect.addListener(
callback: function,
)
Diaktifkan saat koneksi dibuat dari proses ekstensi atau skrip konten (oleh runtime.connect
).
onConnectExternal
chrome.runtime.onConnectExternal.addListener(
callback: function,
)
Diaktifkan saat koneksi dibuat dari ekstensi lain (oleh runtime.connect
), atau dari situs yang dapat dihubungkan secara eksternal.
onConnectNative
chrome.runtime.onConnectNative.addListener(
callback: function,
)
Diaktifkan saat koneksi dibuat dari aplikasi native. Peristiwa ini memerlukan izin "nativeMessaging"
. Ini hanya didukung di Chrome OS.
onInstalled
chrome.runtime.onInstalled.addListener(
callback: function,
)
Diaktifkan saat ekstensi pertama kali diinstal, saat ekstensi diupdate ke versi baru, dan saat Chrome diupdate ke versi baru.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(details: object) => void
-
detail
objek
-
id
string opsional
Menunjukkan ID ekstensi modul bersama yang diimpor yang diupdate. Status ini hanya ada jika 'reason' adalah 'shared_module_update'.
-
previousVersion
string opsional
Menunjukkan versi ekstensi sebelumnya, yang baru saja diupdate. Pesan ini hanya muncul jika 'reason' adalah 'update'.
-
alasan
Alasan peristiwa ini dikirim.
-
-
onMessage
chrome.runtime.onMessage.addListener(
callback: function,
)
Diaktifkan saat pesan dikirim dari proses ekstensi (oleh runtime.sendMessage
) atau skrip konten (oleh tabs.sendMessage
).
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
-
pesan
apa pun
-
pengirim
-
sendResponse
fungsi
Parameter
sendResponse
terlihat seperti:() => void
-
akan menampilkan
boolean | tidak ditentukan
-
onMessageExternal
chrome.runtime.onMessageExternal.addListener(
callback: function,
)
Diaktifkan saat pesan dikirim dari ekstensi lain (oleh runtime.sendMessage
). Tidak dapat digunakan di skrip konten.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
-
pesan
apa pun
-
pengirim
-
sendResponse
fungsi
Parameter
sendResponse
terlihat seperti:() => void
-
akan menampilkan
boolean | tidak ditentukan
-
onRestartRequired
chrome.runtime.onRestartRequired.addListener(
callback: function,
)
Diaktifkan saat aplikasi atau perangkat yang menjalankannya perlu dimulai ulang. Aplikasi harus menutup semua jendela pada waktu paling awal yang sesuai agar mulai ulang dapat terjadi. Jika aplikasi tidak melakukan apa pun, mulai ulang akan diterapkan setelah masa tenggang 24 jam telah berlalu. Saat ini, peristiwa ini hanya diaktifkan untuk aplikasi kios Chrome OS.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(reason: OnRestartRequiredReason) => void
-
alasan
-
onStartup
chrome.runtime.onStartup.addListener(
callback: function,
)
Diaktifkan saat profil yang pertama kali menginstal ekstensi ini dimulai. Peristiwa ini tidak diaktifkan saat profil samaran dimulai, meskipun ekstensi ini beroperasi dalam mode samaran 'terpisah'.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:() => void
onSuspend
chrome.runtime.onSuspend.addListener(
callback: function,
)
Dikirim ke halaman peristiwa tepat sebelum muatannya dibongkar. Hal ini memberi kesempatan pada ekstensi untuk melakukan pembersihan. Perlu diperhatikan bahwa karena halaman menghapus muatan, operasi asinkron apa pun yang dimulai saat menangani peristiwa ini tidak dijamin akan selesai. Jika lebih banyak aktivitas untuk halaman peristiwa terjadi sebelum penghapusan muatannya, peristiwa onSuspendCancelled akan dikirim dan halaman tidak akan dihapus muatannya.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:() => void
onSuspendCanceled
chrome.runtime.onSuspendCanceled.addListener(
callback: function,
)
Dikirim setelah onSuspend untuk menunjukkan bahwa aplikasi tidak akan dibongkar muatannya.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:() => void
onUpdateAvailable
chrome.runtime.onUpdateAvailable.addListener(
callback: function,
)
Diaktifkan saat update tersedia, tetapi tidak langsung diinstal karena aplikasi sedang berjalan. Jika Anda tidak melakukan apa pun, update akan diinstal saat halaman latar belakang dihapus muatannya, jika Anda ingin menginstal lebih cepat, Anda dapat memanggil chrome.runtime.reload() secara eksplisit. Jika ekstensi Anda menggunakan halaman latar belakang yang persisten, halaman latar belakang tentunya tidak akan pernah dihapus muatannya, jadi kecuali Anda memanggil chrome.runtime.reload() secara manual sebagai respons terhadap peristiwa ini, update tidak akan diinstal hingga Chrome sendiri dimulai ulang. Jika tidak ada pengendali yang memproses peristiwa ini, dan ekstensi Anda memiliki halaman latar belakang yang persisten, ekstensi akan berperilaku seolah-olah chrome.runtime.reload() dipanggil sebagai respons terhadap peristiwa ini.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(details: object) => void
-
detail
objek
-
versi
string
Nomor versi update yang tersedia.
-
-
onUserScriptConnect
chrome.runtime.onUserScriptConnect.addListener(
callback: function,
)
Diaktifkan saat koneksi dibuat dari skrip pengguna dari ekstensi ini.
onUserScriptMessage
chrome.runtime.onUserScriptMessage.addListener(
callback: function,
)
Diaktifkan saat pesan dikirim dari skrip pengguna yang terkait dengan ekstensi yang sama.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
-
pesan
apa pun
-
pengirim
-
sendResponse
fungsi
Parameter
sendResponse
terlihat seperti:() => void
-
akan menampilkan
boolean | tidak ditentukan
-