Açıklama
Service Worker'ı almak, manifest dosyasıyla ilgili ayrıntıları döndürmek ve uzantı yaşam döngüsündeki etkinlikleri dinlemek ve yanıtlamak için chrome.runtime
API'yi kullanın. Bu API'yı, URL'lerin göreli yolunu tam nitelikli URL'lere dönüştürmek için de kullanabilirsiniz.
Bu API'nin çoğu üyesi herhangi bir izin gerektirmez. Bu izin connectNative()
, sendNativeMessage()
ve onNativeConnect
için gereklidir.
Aşağıdaki örnekte, manifest dosyasında "nativeMessaging"
izninin nasıl tanımlanacağı gösterilmektedir:
manifest.json:
{
"name": "My extension",
...
"permissions": [
"nativeMessaging"
],
...
}
Kavramlar ve kullanım
Runtime API, uzantılarınızın kullanabileceği çeşitli alanları destekleyen yöntemler sağlar:
- Mesaj iletme
- Uzantınız şu yöntem ve etkinlikleri kullanarak, uzantınızın içindeki farklı bağlamlarla ve diğer uzantılarla iletişim kurabilir:
connect()
,onConnect
,onConnectExternal
,sendMessage()
,onMessage
veonMessageExternal
. Ayrıca uzantınız,connectNative()
vesendNativeMessage()
aracılığıyla kullanıcının cihazındaki yerel uygulamalara mesaj iletebilir.
- Uzantı ve platform meta verilerine erişme
- Bu yöntemler, uzantı ve platform hakkında belirli meta veriler parçaları almanızı sağlar. Bu kategorideki yöntemler şunlardır:
getManifest()
vegetPlatformInfo()
. - Uzantı yaşam döngüsünü ve seçeneklerini yönetme
- Bu özellikler, uzantı üzerinde bazı meta işlemler yapmanıza ve seçenekler sayfasını görüntülemenize olanak tanır.
Bu kategorideki yöntemler ve etkinlikler:
onInstalled
,onStartup
,openOptionsPage()
,reload()
,requestUpdateCheck()
vesetUninstallURL()
. - Yardımcı yardımcı programlar
- Bu yöntemler, dahili kaynak temsillerinin harici biçimlere dönüştürülmesi gibi faydalar sağlar. Bu kategorideki yöntemler şu şekildedir:
getURL()
. - Kiosk modu yardımcı programları
- Bu yöntemler yalnızca ChromeOS'te kullanılabilir ve temel olarak kiosk uygulamalarını desteklemek için kullanılır.
Bu kategorideki yöntemler şunlardır:
restart()
verestartAfterDelay()
`.
Paketlenmemiş uzantı davranışı
Paketlenmemiş bir uzantı yeniden yüklendiğinde bu bir güncelleme olarak değerlendirilir. Bu, chrome.runtime.onInstalled
etkinliğinin "update"
nedeniyle tetikleneceği anlamına gelir. Buna, uzantının chrome.runtime.reload()
ile yeniden yüklenmesi de dahildir.
Kullanım alanları
Web sayfasına resim ekleme
Bir web sayfasının başka bir alanda barındırılan öğeye erişmesi için kaynağın tam URL'sini (ör. <img src="https://example.com/logo.png">
) belirtmesi gerekir. Aynı durum, web sayfasına uzantı öğesi eklemek için de geçerlidir. İki fark, uzantı öğelerinin web'den erişilebilen kaynaklar olarak gösterilmesi gerektiği ve genellikle içerik komut dosyalarının, uzantı öğelerinin eklenmesinden sorumlu olmasıdır.
Bu örnekte uzantı, tam nitelikli bir URL oluşturmak için runtime.getURL()
kullanılarak contentscript'in yerleştirildiği sayfaya logo.png
ekler. Ancak öncelikle öğenin manifest dosyasında web'den erişilebilen bir kaynak olarak belirtilmesi gerekir.
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);
}
İçerik komut dosyasından hizmet çalışanına veri gönderme
Uzantıların içerik komut dosyalarının, hizmet çalışanı gibi uzantının başka bir bölümü tarafından yönetilen verilere ihtiyacı olması sık karşılaşılan bir durumdur. Aynı web sayfasına açılan iki tarayıcı penceresine benzer şekilde, bu iki bağlam da birbirinin değerlerine doğrudan erişemez. Uzantı bunun yerine, bu farklı bağlamlar arasında koordinasyon sağlamak için mesaj iletme özelliğini kullanabilir.
Bu örnekte, içerik komut dosyasının kullanıcı arayüzünü başlatmak için hizmet çalışanından bazı verilere ihtiyacı vardır. Söz konusu verileri almak için geliştirici tarafından tanımlanan get-user-data
mesajını hizmet çalışanına iletir ve kullanıcı bilgilerinin bir kopyasıyla yanıt verir.
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);
}
});
Kaldırma işlemiyle ilgili geri bildirim alma
Birçok uzantı, uzantının kullanıcılarına nasıl daha iyi hizmet verebileceğini ve elde tutma oranını nasıl artırabileceğini anlamak için yükleme kaldırma sonrası anketleri kullanır. Aşağıdaki örnekte bu işlevin nasıl ekleneceği gösterilmektedir.
background.js:
chrome.runtime.onInstalled.addListener(details => {
if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
chrome.runtime.setUninstallURL('https://example.com/extension-survey');
}
});
Örnekler
Daha fazla Runtime API örneği için Manifest V3 - Web Erişilebilir Kaynaklar demosuna göz atın.
Türler
ContextFilter
Belirli uzantı bağlamlarıyla eşleşen bir filtre. Eşleşen bağlamlar belirtilen tüm filtrelerle eşleşmelidir; belirtilmeyen tüm filtreler mevcut tüm bağlamlarla eşleşir. Bu nedenle, "{}" filtresi mevcut tüm bağlamlarla eşleşir.
Özellikler
-
contextIds
string[] isteğe bağlı
-
contextTypes
ContextType[] isteğe bağlı
-
documentIds
string[] isteğe bağlı
-
documentOrigins
string[] isteğe bağlı
-
documentUrls
string[] isteğe bağlı
-
frameIds
number[] isteğe bağlı
-
gizli
boole isteğe bağlı
-
tabIds
number[] isteğe bağlı
-
windowIds
number[] isteğe bağlı
ContextType
Enum
"SEKME"
Bağlam türünü sekme olarak belirtir
"POPUP"
Bağlam türünü uzantı pop-up penceresi olarak belirtir
"BACKGROUND"
Hizmet çalışanı olarak bağlam türünü belirtir.
"OFFSCREEN_DOCUMENT"
Bağlam türünü ekran dışı doküman olarak belirtir.
"SIDE_PANEL"
Bağlam türünü yan panel olarak belirtir.
ExtensionContext
Uzantı içeriğini barındıran bağlam.
Özellikler
-
contextId
dize
Bu bağlam için benzersiz bir tanımlayıcı
-
contextType
Bunun karşılık gelen bağlam türü.
-
documentId
string isteğe bağlı
Bu bağlamla ilişkilendirilmiş doküman için UUID. Bu bağlam bir dokümanda barındırılmıyorsa tanımlanmamış.
-
documentOrigin
string isteğe bağlı
Bu bağlamla ilişkilendirilmiş dokümanın kaynağı veya bağlam, dokümanda barındırılmıyorsa tanımlanmamış.
-
documentUrl
string isteğe bağlı
Bu bağlamla ilişkilendirilmiş dokümanın URL'si. Bağlam, dokümanda barındırılmıyorsa bu tanım tanımlanmamıştır.
-
frameId
sayı
Bu bağlam için çerçevenin kimliği veya bu bağlam bir çerçeve içinde barındırılmıyorsa -1.
-
gizli
boolean
Bağlamın gizli bir profille ilişkili olup olmadığı.
-
tabId
sayı
Bu bağlam için sekmenin kimliği veya bu bağlam bir sekmede barındırılmıyorsa -1.
-
windowId
sayı
Bu bağlam için pencerenin kimliği veya bu bağlam bir pencerede barındırılmıyorsa -1.
MessageSender
Bir ileti veya istek gönderen komut dosyası içeriğiyle ilgili bilgiler içeren bir nesne.
Özellikler
-
documentId
string isteğe bağlı
Chrome 106 ve sonraki sürümlerBağlantıyı açan dokümanın UUID'si.
-
documentLifecycle
string isteğe bağlı
Chrome 106 ve sonraki sürümlerBağlantıyı açan dokümanın, bağlantı noktasının oluşturulduğu sıradaki yaşam döngüsü. Bağlantı noktası oluşturulduktan sonra belgenin yaşam döngüsü durumunun değişmiş olabileceğini unutmayın.
-
frameId
numara isteğe bağlı
Bağlantıyı açan çerçeve. Üst düzey kareler için 0, alt kareler için pozitif. Bu ayar yalnızca
tab
ayarlandığında ayarlanır. -
id
string isteğe bağlı
Bağlantıyı açan uzantının kimliği (varsa).
-
nativeApplication
string isteğe bağlı
Chrome 74 ve sonraki sürümlerBağlantıyı açan yerel uygulamanın (varsa) adı.
-
kaynak
string isteğe bağlı
Chrome 80 ve sonraki sürümlerBağlantıyı açan sayfanın veya çerçevenin kaynağı. Url özelliğinden farklı (ör. about:blank) veya opak olabilir (ör. korumalı alana alınmış iframe'ler). Bu, URL'den hemen ayırt edemediğimizde kaynağın güvenilir olup olmadığını belirlemek açısından yararlıdır.
-
sekmesinden
Sekme isteğe bağlı
Bağlantıyı açan
tabs.Tab
(varsa). Bu özellik yalnızca bağlantı bir sekmeden açıldığında (içerik komut dosyaları dahil) ve yalnızca alıcı bir uygulama değil, uzantıysa mevcut olur. -
tlsChannelId
string isteğe bağlı
Uzantı tarafından isteniyorsa ve varsa bağlantıyı açan sayfanın veya çerçevenin TLS kanal kimliği.
-
url
string isteğe bağlı
Bağlantıyı açan sayfanın veya çerçevenin URL'si. Gönderen bir iframe içindeyse bu iletiyi barındıran sayfanın URL'si değil iframe'in URL'si olur.
OnInstalledReason
Bu etkinliğin gönderilme nedeni.
Enum
"install"
Etkinlik nedenini yükleme olarak belirtir.
"update"
Etkinlik nedenini uzantı güncellemesi olarak belirtir.
"chrome_update"
Etkinlik nedenini Chrome güncellemesi olarak belirtir.
"shared_module_update"
Paylaşılan bir modülün güncellemesi olarak etkinlik nedenini belirtir.
OnRestartRequiredReason
Etkinliğin dağıtılma nedeni. "app_update", uygulama daha yeni bir sürüme güncellendiğinden yeniden başlatma gerektiğinde kullanılır. "os_update", tarayıcı/OS daha yeni bir sürüme güncellendiğinden yeniden başlatma gerektiğinde kullanılır. "periodic", sistem, kurumsal politikada izin verilen çalışma süresinden daha uzun süre çalıştığında kullanılır.
Enum
"app_update"
Etkinlik nedenini uygulama güncellemesi olarak belirtir.
"os_update"
Etkinlik nedenini işletim sistemi güncellemesi olarak belirtir.
"periodic"
Etkinlik nedenini, uygulamanın periyodik olarak yeniden başlatılması olarak belirtir.
PlatformArch
Makinenin işlemci mimarisi.
Enum
"arm"
İşlemci mimarisini kol olarak belirtir.
"arm64"
İşlemci mimarisini arm64 olarak belirtir.
"x86-32"
İşlemci mimarisini x86-32 olarak belirtir.
"x86-64"
İşlemci mimarisini x86-64 olarak belirtir.
"mips"
İşlemci mimarisini mips olarak belirtir.
"mips64"
İşlemci mimarisini mips64 olarak belirtir.
PlatformInfo
Geçerli platform hakkında bilgi içeren bir nesne.
Özellikler
-
kemer
Makinenin işlemci mimarisi.
-
nacl_arch
Yerel istemci mimarisi. Bu, bazı platformlardaki kemerden farklı olabilir.
-
os
Chrome'un çalıştığı işletim sistemi.
PlatformNaclArch
Yerel istemci mimarisi. Bu, bazı platformlardaki kemerden farklı olabilir.
Enum
"arm"
Yerel istemci mimarisini kol olarak belirtir.
"x86-32"
Yerel istemci mimarisini x86-32 olarak belirtir.
"x86-64"
Yerel istemci mimarisini x86-64 olarak belirtir.
"mips"
Yerel istemci mimarisini mip olarak belirtir.
"mips64"
Yerel istemci mimarisini mips64 olarak belirtir.
PlatformOs
Chrome'un çalıştığı işletim sistemi.
Enum
"mac"
MacOS işletim sistemini belirtir.
"win"
Windows işletim sistemini belirtir.
"android"
Android işletim sistemini belirtir.
"cros"
Chrome işletim sistemini belirtir.
"linux"
Linux işletim sistemini belirtir.
"openbsd"
OpenBSD işletim sistemini belirtir.
"fuchsia"
Fuşya işletim sistemini belirtir.
Port
Diğer sayfalarla iki yönlü iletişime olanak tanıyan bir nesne. Daha fazla bilgi için Uzun ömürlü bağlantılar bölümünü inceleyin.
Özellikler
-
ad
dize
Bağlantı noktasının,
runtime.connect
çağrısında belirtilen adı. -
onDisconnect
Etkinlik<functionvoidvoid>
Bağlantı noktası diğer uçlardan kesildiğinde tetiklenir. Bağlantı noktasının bağlantısı bir hata nedeniyle kesildiyse
runtime.lastError
ayarlanabilir. Bağlantı noktası bağlantıyı kes aracılığıyla kapatılırsa bu etkinlik yalnızca diğer tarafta tetiklenir. Bu etkinlik en fazla bir kez tetiklenir (ayrıca bkz. Bağlantı noktası ömrü).onDisconnect.addListener
işlevi şu şekilde görünür:(callback: function) => {...}
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(port: Port) => void
-
bağlantı noktası
-
-
-
onMessage
Etkinlik<functionvoidvoid>
Bu etkinlik, bağlantı noktasının diğer ucu tarafından postMessage çağrıldığında tetiklenir.
onMessage.addListener
işlevi şu şekilde görünür:(callback: function) => {...}
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(message: any, port: Port) => void
-
mesaj
Tümü
-
bağlantı noktası
-
-
-
gönderen
MessageSender isteğe bağlı
Bu özellik yalnızca onConnect / onConnectExternal / onConnectNative işleyicilerine iletilen bağlantı noktalarında mevcut olacaktır.
-
bağlantıyı kes
void
Bağlantı noktasının bağlantısını hemen kesin. Bağlantısı kesilmiş bir bağlantı noktasından
disconnect()
çağrısının herhangi bir etkisi olmaz. Bir bağlantı noktasının bağlantısı kesildiğinde, bu bağlantı noktasına yeni etkinlik gönderilmez.disconnect
işlevi şu şekilde görünür:() => {...}
-
postMessage
void
Bağlantı noktasının diğer ucuna bir mesaj gönderin. Bağlantı noktasının bağlantısı kesilirse hata verilir.
postMessage
işlevi şu şekilde görünür:(message: any) => {...}
-
mesaj
Tümü
Chrome 52 ve sonraki sürümlerGönderilecek ileti. Bu nesne, JSON öğesine uygun olmalıdır.
-
RequestUpdateCheckStatus
Güncelleme kontrolünün sonucu.
Enum
"throttled"
Durum denetiminin kısıtlandığını belirtir. Kısa süre içinde tekrarlanan kontrollerden sonra bu durumla karşılaşılabilir.
"no_update"
Yüklenebilecek güncelleme olmadığını belirtir.
"update_available"
Yüklenebilecek bir güncelleme olduğunu belirtir.
Özellikler
id
Uzantının/uygulamanın kimliği.
Tür
dize
lastError
Bir API işlevinin çağrılması başarısız olursa hata mesajıyla doldurulur; aksi takdirde tanımlanmamış olur. Bu değer yalnızca söz konusu işlevin geri çağırma işleminin kapsamında tanımlanır. Bir hata oluşursa ancak geri çağırma içinde runtime.lastError
öğesine erişilmezse, konsolda hataya neden olan API işlevini listeleyen bir mesaj günlüğe kaydedilir. Sözler döndüren API işlevleri bu özelliği ayarlamaz.
Tür
nesne
Özellikler
-
mesaj
string isteğe bağlı
Oluşan hatayla ilgili ayrıntılar.
Yöntemler
connect()
chrome.runtime.connect(
extensionId?: string,
connectInfo?: object,
)
Bir uzantı (arka plan sayfası gibi) veya diğer uzantılar/uygulamalar içindeki işleyicileri bağlamaya çalışır. Bu, uzantı işlemlerine bağlanan içerik komut dosyaları, uygulamalar arası/uzantılar iletişimi ve web mesajlaşması için kullanışlıdır. Bunun bir içerik komut dosyasındaki herhangi bir işleyiciyle bağlantı kurmadığını unutmayın. Uzantılar, tabs.connect
aracılığıyla sekmelere yerleştirilmiş içerik komut dosyalarına bağlanabilir.
Parametreler
-
extensionId
string isteğe bağlı
Bağlanılacak uzantının kimliği. Atlanırsa kendi uzantınızla bağlantı yapılmaya çalışılır. Web mesajlaşma için bir web sayfasından ileti gönderiyorsanız gereklidir.
-
connectInfo
isteğe bağlı
-
includeTlsChannelId
boole isteğe bağlı
Bağlantı etkinliğini dinleyen işlemler için TLS kanal kimliğinin onConnectExternal'e aktarılıp aktarılmayacağı.
-
ad
string isteğe bağlı
Bağlantı etkinliğini dinleyen işlemler için onConnect'e iletilir.
-
İlerlemeler
-
İletilerin gönderilebileceği ve alınabileceği bağlantı noktası. Uzantı mevcut değilse bağlantı noktasının onDisconnect etkinliği tetiklenir.
connectNative()
chrome.runtime.connectNative(
application: string,
)
Ana makinedeki yerel bir uygulamaya bağlanır. Bu yöntem için "nativeMessaging"
izni gerekir. Daha fazla bilgi için Yerel Mesajlaşma konusuna bakın.
Parametreler
-
uygulama
dize
Bağlanılacak kayıtlı uygulamanın adı.
İlerlemeler
-
Uygulama ile mesaj gönderilip alınan bağlantı noktası
getBackgroundPage()
chrome.runtime.getBackgroundPage(
callback?: function,
)
Geçerli uzantının/uygulamanın içinde çalışan arka plan sayfası için JavaScript "window" nesnesini alır. Arka plan sayfası bir etkinlik sayfasıysa sistem, geri çağırma işlevini çağırmadan önce sayfanın yüklendiğinden emin olur. Arka plan sayfası yoksa bir hata ayarlanır.
Parametreler
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:(backgroundPage?: Window) => void
-
backgroundPage
Aralık isteğe bağlı
Arka plan sayfası için JavaScript "window" nesnesi.
-
İlerlemeler
-
Promise<Window | undefined>
Chrome 99 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
getContexts()
chrome.runtime.getContexts(
filter: ContextFilter,
callback?: function,
)
Bu uzantıyla ilişkilendirilmiş etkin bağlamlar hakkında bilgi getirir
Parametreler
-
filter
Eşleşen bağlamları bulmak için kullanılan bir filtre. Bir bağlam, filtrede belirtilen tüm alanlarla eşleşirse eşleşir. Filtredeki belirtilmemiş herhangi bir alan tüm bağlamlarla eşleşir.
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:(contexts: ExtensionContext[]) => void
-
bağlam
Eşleşen bağlamlar (varsa).
-
İlerlemeler
-
Promise<ExtensionContext[]>
Vaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
getManifest()
chrome.runtime.getManifest()
Manifest'teki uygulama veya uzantıyla ilgili ayrıntıları döndürür. Döndürülen nesne, tam manifest dosyasının serileştirilmiş halidir.
İlerlemeler
-
nesne
Manifest ayrıntıları.
getPackageDirectoryEntry()
chrome.runtime.getPackageDirectoryEntry(
callback?: function,
)
Paket dizini için bir DirectoryEntry döndürür.
Parametreler
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:(directoryEntry: DirectoryEntry) => void
-
directoryEntry
DirectoryEntry
-
İlerlemeler
-
Promise<DirectoryEntry>
Chrome 122 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
getPlatformInfo()
chrome.runtime.getPlatformInfo(
callback?: function,
)
Geçerli platform hakkında bilgi döndürür.
Parametreler
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:(platformInfo: PlatformInfo) => void
-
platformInfo
-
İlerlemeler
-
Promise<PlatformInfo>
Chrome 99 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
getURL()
chrome.runtime.getURL(
path: string,
)
Bir uygulama/uzantı yükleme dizini içindeki göreli bir yolu tam nitelikli bir URL'ye dönüştürür.
Parametreler
-
yol
dize
Bir uygulama/uzantı içinde, yükleme diziniyle göreli olarak ifade edilen kaynağın yolu.
İlerlemeler
-
dize
Kaynağın tam nitelikli URL'si.
openOptionsPage()
chrome.runtime.openOptionsPage(
callback?: function,
)
Mümkünse Uzantınızın seçenekler sayfasını açın.
Tam davranış, manifest dosyanızın [options_ui](https://developer.chrome.com/docs/extensions/develop/ui/options-page#embedded_options)
veya [options_page](https://developer.chrome.com/docs/extensions/develop/ui/options-page#full_page)
anahtarına ya da Chrome'un ilgili zamanda ne desteklediğine bağlı olabilir. Örneğin, sayfa yeni bir sekmede, chrome://extensions içinde veya bir Uygulama içinde açılabilir ya da sadece açık bir seçenekler sayfasına odaklanabilir. Bu işlem, arayan sayfasının yeniden yüklenmesine hiçbir zaman neden olmaz.
Uzantınız bir seçenekler sayfası belirtmezse veya Chrome başka bir nedenden dolayı sayfa oluşturamadıysa geri çağırma lastError
değerini ayarlar.
Parametreler
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:() => void
İlerlemeler
-
Promise<void>
Chrome 99 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
reload()
chrome.runtime.reload()
Uygulamayı veya uzantıyı yeniden yükler. Bu yöntem kiosk modunda desteklenmez. Kiosk modu için chrome.runtime.restart() yöntemini kullanın.
requestUpdateCheck()
chrome.runtime.requestUpdateCheck(
callback?: function,
)
Bu uygulama/uzantı için anında güncelleme kontrolü yapılmasını istiyor.
Önemli: Chrome birkaç saatte bir otomatik kontrol gerçekleştirdiğinden ve siz requestUpdateCheck'i çağırmanıza gerek kalmadan runtime.onUpdateAvailable
etkinliğini dinleyebilirsiniz. Bu nedenle, çoğu uzantı/uygulama bu yöntemi kullanmamalıdır.
Bu yöntem yalnızca çok sınırlı durumlarda (örneğin, uzantınızın bir arka uç hizmetiyle iletişim kurduğunda ve arka uç hizmetinin istemci uzantısı sürümünün çok eski olduğunu belirlediğinde ve kullanıcıdan güncelleme yapmasını istediğinizde) uygundur. Tekrarlayan bir zamanlayıcıya göre koşulsuz olarak çağırmak gibi requestUpdateCheck'in diğer kullanımlarının çoğu muhtemelen yalnızca istemci, ağ ve sunucu kaynaklarını boşa harcamaya hizmet eder.
Not: Bir geri çağırma ile çağrıldığında, bu işlev bir nesne döndürmek yerine, geri çağırmaya iletilen ayrı bağımsız değişkenler olarak iki özelliği döndürür.
Parametreler
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:(result: object) => void
-
sonuç
nesne
Chrome 109 ve sonraki sürümlerGüncelleme kontrolünün durumunu ve bir güncelleme varsa sonucun tüm ayrıntılarını içeren RequestUpdateCheckResult nesnesi
-
status
Güncelleme kontrolünün sonucu.
-
sürüm
string isteğe bağlı
Bir güncelleme varsa bu, mevcut güncellemenin sürümünü içerir.
-
-
İlerlemeler
-
Promise<object>
Chrome 109 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
restart()
chrome.runtime.restart()
Uygulama kiosk modunda çalışırken ChromeOS cihazı yeniden başlatın. Aksi takdirde herhangi bir işlem yapmanız gerekmez.
restartAfterDelay()
chrome.runtime.restartAfterDelay(
seconds: number,
callback?: function,
)
Belirtilen saniye süre sonunda uygulama kiosk modunda çalıştığında ChromeOS cihazı yeniden başlatın. Süre sona ermeden önce tekrar çağrılırsa yeniden başlatma gecikir. -1 değeriyle çağrılırsa yeniden başlatma iptal edilir. Kiosk olmayan modda işlem yok. Yalnızca bu API'yi çağırmak için ilk uzantı tarafından tekrar tekrar çağrılmasına izin verilir.
Parametreler
-
saniye
sayı
Cihazı yeniden başlatmadan önce saniye cinsinden bekleme süresi veya programlanmış yeniden başlatmayı iptal etmek için -1 değeri.
-
geri çağırma
Functions (isteğe bağlı)
callback
parametresi şu şekilde görünür:() => void
İlerlemeler
-
Promise<void>
Chrome 99 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
sendMessage()
chrome.runtime.sendMessage(
extensionId?: string,
message: any,
options?: object,
callback?: function,
)
Uzantınız veya farklı bir uzantının/uygulamanın içindeki etkinlik işleyicilere tek bir mesaj gönderir. runtime.connect
'e benzer ancak isteğe bağlı yanıtla yalnızca tek bir mesaj gönderir. Uzantınıza gönderiliyorsa runtime.onMessage
etkinliği, uzantınızın her karesinde (gönderenin çerçevesi hariç) veya farklı bir uzantıysa runtime.onMessageExternal
tetiklenir. Uzantıların bu yöntemi kullanarak içerik komut dosyalarına mesaj gönderemeyeceğini unutmayın. İçerik komut dosyalarına mesaj göndermek için tabs.sendMessage
özelliğini kullanın.
Parametreler
-
extensionId
string isteğe bağlı
Mesajın gönderileceği uzantının kimliği. Atlanırsa mesaj kendi uzantınıza/uygulamanıza gönderilir. Web mesajlaşma için bir web sayfasından mesaj gönderiyorsanız mesaj zorunludur.
-
mesaj
Tümü
Gönderilecek ileti. Bu ileti, JSON öğesine uygun bir nesne olmalıdır.
-
seçenekler
isteğe bağlı
-
includeTlsChannelId
boole isteğe bağlı
Bağlantı etkinliğini dinleyen işlemler için TLS kanal kimliğinin onMessageExternal öğesine aktarılıp aktarılmayacağı.
-
-
geri çağırma
Functions (isteğe bağlı)
Chrome 99 ve sonraki sürümlercallback
parametresi şu şekilde görünür:(response: any) => void
-
yanıt
Tümü
İletinin işleyicisi tarafından gönderilen JSON yanıt nesnesi. Uzantıya bağlanırken bir hata oluşursa geri çağırma bağımsız değişken olmadan çağrılır ve hata mesajı
runtime.lastError
olarak ayarlanır.
-
İlerlemeler
-
Söz<herhangi>
Chrome 99 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
sendNativeMessage()
chrome.runtime.sendNativeMessage(
application: string,
message: object,
callback?: function,
)
Yerel uygulamaya tek bir mesaj gönderin. Bu yöntem için "nativeMessaging"
izni gerekir.
Parametreler
-
uygulama
dize
Yerel mesajlaşma ana makinesinin adı.
-
mesaj
nesne
Yerel mesajlaşma ana makinesine aktarılacak mesaj.
-
geri çağırma
Functions (isteğe bağlı)
Chrome 99 ve sonraki sürümlercallback
parametresi şu şekilde görünür:(response: any) => void
-
yanıt
Tümü
Yerel mesajlaşma ana makinesi tarafından gönderilen yanıt mesajı. Yerel mesajlaşma ana makinesine bağlanılırken bir hata oluşursa geri çağırma bağımsız değişken olmadan çağrılır ve
runtime.lastError
, hata mesajı olarak ayarlanır.
-
İlerlemeler
-
Söz<herhangi>
Chrome 99 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
setUninstallURL()
chrome.runtime.setUninstallURL(
url: string,
callback?: function,
)
Kaldırma işleminden sonra ziyaret edilecek URL'yi ayarlar. Bu işlem, sunucu tarafı verileri temizlemek, analizler yapmak ve anketleri uygulamak için kullanılabilir. En fazla 1.023 karakter.
Parametreler
-
url
dize
Uzantı kaldırıldıktan sonra açılacak URL. Bu URL'nin bir http: veya https: şeması olması gerekir. Kaldırma işleminden sonra yeni sekme açılmayacak şekilde boş bir dize ayarlayın.
-
geri çağırma
Functions (isteğe bağlı)
Chrome 45 ve sonraki sürümlercallback
parametresi şu şekilde görünür:() => void
İlerlemeler
-
Promise<void>
Chrome 99 ve sonraki sürümlerVaatler, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. Aynı işlev çağrısında ikisini birden kullanamazsınız. Vaat, geri çağırmaya iletilen aynı türle çözümlenir.
Etkinlikler
onBrowserUpdateAvailable
chrome.runtime.onBrowserUpdateAvailable.addListener(
callback: function,
)
Lütfen runtime.onRestartRequired
hesabını kullanın.
Bir Chrome güncellemesi olduğunda, ancak tarayıcının yeniden başlatılması gerektiği için hemen yüklenmediğinde tetiklenir.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:() => void
onConnect
chrome.runtime.onConnect.addListener(
callback: function,
)
Uzantı işleminden veya içerik komut dosyasından (runtime.connect
tarafından) bağlantı kurulduğunda tetiklenir.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(port: Port) => void
-
bağlantı noktası
-
onConnectExternal
chrome.runtime.onConnectExternal.addListener(
callback: function,
)
Başka bir uzantıdan (runtime.connect
tarafından) veya harici olarak bağlanabilen bir web sitesinden bağlantı kurulduğunda tetiklenir.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(port: Port) => void
-
bağlantı noktası
-
onConnectNative
chrome.runtime.onConnectNative.addListener(
callback: function,
)
Yerel bir uygulamadan bağlantı kurulduğunda tetiklenir. Bu etkinlik "nativeMessaging"
iznini gerektiriyor. Yalnızca Chrome OS'te desteklenir.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(port: Port) => void
-
bağlantı noktası
-
onInstalled
chrome.runtime.onInstalled.addListener(
callback: function,
)
Uzantı ilk kez yüklendiğinde, uzantı yeni bir sürüme güncellendiğinde ve Chrome yeni bir sürüme güncellendiğinde tetiklenir.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(details: object) => void
-
ayrıntılar
nesne
-
id
string isteğe bağlı
İçe aktarılan paylaşılan modül uzantısının kimliğini belirtir. Bu öğe yalnızca "reason" için "shared_module_update" değeri veriliyorsa mevcuttur.
-
previousVersion
string isteğe bağlı
Uzantının, yeni güncellenen önceki sürümünü gösterir. Bu yalnızca "neden" "güncelleme" ise mevcuttur.
-
neden
Bu etkinliğin gönderilme nedeni.
-
-
onMessage
chrome.runtime.onMessage.addListener(
callback: function,
)
Bir uzantı işleminden (runtime.sendMessage
tarafından) veya içerik komut dosyasından (tabs.sendMessage
tarafından) ileti gönderildiğinde tetiklenir.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
-
mesaj
Tümü
-
gönderen
-
sendResponse
işlev
sendResponse
parametresi şu şekilde görünür:() => void
-
returns
boole | tanımsız
-
onMessageExternal
chrome.runtime.onMessageExternal.addListener(
callback: function,
)
Mesaj başka bir uzantıdan (runtime.sendMessage
tarafından) gönderildiğinde tetiklenir. İçerik komut dosyasında kullanılamaz.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
-
mesaj
Tümü
-
gönderen
-
sendResponse
işlev
sendResponse
parametresi şu şekilde görünür:() => void
-
returns
boole | tanımsız
-
onRestartRequired
chrome.runtime.onRestartRequired.addListener(
callback: function,
)
Bir uygulamanın veya üzerinde çalıştığı cihazın yeniden başlatılması gerektiğinde tetiklenir. Yeniden başlatmanın gerçekleşmesi için uygulama, en kısa sürede tüm pencerelerini kapatmalıdır. Uygulama hiçbir şey yapmazsa 24 saatlik ek süre geçtikten sonra yeniden başlatma zorunlu kılınır. Şu anda bu etkinlik yalnızca Chrome OS kiosk uygulamaları için tetiklenir.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(reason: OnRestartRequiredReason) => void
-
neden
-
onStartup
chrome.runtime.onStartup.addListener(
callback: function,
)
Bu uzantının yüklü olduğu bir profil ilk kez başlatıldığında tetiklenir. Bir gizli profil başlatıldığında, bu uzantı "bölünmüş" gizli modda çalışıyor olsa bile bu etkinlik tetiklenmez.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:() => void
onSuspend
chrome.runtime.onSuspend.addListener(
callback: function,
)
Kaldırılmadan hemen önce etkinlik sayfasına gönderilir. Bu, uzantıya biraz temizlik yapma fırsatı tanır. Sayfa yükleme kaldırma işlemi yapıldığından, bu etkinlik işlenirken başlatılan eşzamansız işlemlerin tamamlanmasının garanti edilmediğini unutmayın. Etkinlik kaldırılmadan önce etkinlik sayfasında daha fazla etkinlik gerçekleşirse on suspendedCanceled etkinliği gönderilir ve sayfa kaldırılmaz.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:() => void
onSuspendCanceled
chrome.runtime.onSuspendCanceled.addListener(
callback: function,
)
Uygulamanın kaldırılmayacağını belirtmek için onsuspended tarihinden sonra gönderilir.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:() => void
onUpdateAvailable
chrome.runtime.onUpdateAvailable.addListener(
callback: function,
)
Bir güncelleme mevcut olduğunda tetiklenir, ancak uygulama şu anda çalıştığı için hemen yüklenmez. Hiçbir şey yapmazsanız, güncelleme bir sonraki arka plan sayfası kaldırıldığında yüklenir. Daha erken yüklenmesini isterseniz açıkça chrome.runtime.reload() yöntemini çağırabilirsiniz. Uzantınız kalıcı bir arka plan sayfası kullanıyorsa elbette arka plan sayfası hiçbir zaman kaldırılmaz. Bu nedenle, bu etkinliğe yanıt olarak chrome.runtime.reload() işlevini manuel olarak çağırmadığınız sürece, Chrome tekrar başlatılıncaya kadar güncelleme yüklenmez. Bu etkinliği dinleyen hiçbir işleyici yoksa ve uzantınızın kalıcı bir arka plan sayfası varsa bu etkinliğe yanıt olarak chrome.runtime.reload() çağrılımış gibi davranır.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(details: object) => void
-
ayrıntılar
nesne
-
sürüm
dize
Mevcut güncellemenin sürüm numarası.
-
-
onUserScriptConnect
chrome.runtime.onUserScriptConnect.addListener(
callback: function,
)
Bu uzantıya ait bir kullanıcı komut dosyasından bağlantı kurulduğunda tetiklenir.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(port: Port) => void
-
bağlantı noktası
-
onUserScriptMessage
chrome.runtime.onUserScriptMessage.addListener(
callback: function,
)
Mesaj, aynı uzantıyla ilişkilendirilmiş bir kullanıcı komut dosyasından mesaj gönderildiğinde tetiklenir.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
-
mesaj
Tümü
-
gönderen
-
sendResponse
işlev
sendResponse
parametresi şu şekilde görünür:() => void
-
returns
boole | tanımsız
-