Açıklama
Service worker'ı almak, manifestle ilgili ayrıntıları döndürmek ve uzantı yaşam döngüsündeki etkinlikleri dinleyip yanıtlamak için chrome.runtime
API'yi kullanın. Bu API'yi, URL'lerin göreceli 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 beyan edileceği 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 sunar:
- İleti geçirme
- Uzantınız, bu yöntemleri ve etkinlikleri kullanarak uzantınızdaki farklı bağlamlarla ve diğer uzantılarla iletişim kurabilir:
connect()
,onConnect
,onConnectExternal
,sendMessage()
,onMessage
veonMessageExternal
. Ayrıca uzantınız,connectNative()
vesendNativeMessage()
kullanarak 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 verileri almanıza olanak tanır. Bu kategorideki yöntemler arasında
getManifest()
vegetPlatformInfo()
yer alır. - Uzantı yaşam döngüsünü ve seçeneklerini yönetme
- Bu özellikler, uzantıda bazı meta işlemleri gerçekleştirmenize ve seçenekler sayfasını görüntülemenize olanak tanır.
Bu kategorideki yöntemler ve etkinlikler arasında
onInstalled
,onStartup
,openOptionsPage()
,reload()
,requestUpdateCheck()
vesetUninstallURL()
yer alır. - 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 arasında
getURL()
yer alır. - 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 arasında
restart()
verestartAfterDelay()
` yer alır.
Paketlenmemiş uzantı davranışı
Paketlenmemiş bir uzantı yeniden yüklendiğinde bu işlem güncelleme olarak kabul edilir. Bu, chrome.runtime.onInstalled
etkinliğinin "update"
nedeni ile tetikleneceği anlamına gelir. Buna, uzantının chrome.runtime.reload()
ile yeniden yüklendiği durumlar dahildir.
Kullanım alanları
Web sayfasına resim ekleme
Bir web sayfasının başka bir alan adında barındırılan bir öğeye erişebilmesi için kaynağın tam URL'sini (ör. <img src="https://example.com/logo.png">
) belirtmesi gerekir. Bir uzantı öğesini web sayfasına eklemek için de aynı durum geçerlidir. İki fark vardır: Uzantının öğeleri web'de erişilebilen kaynaklar olarak sunulmalıdır ve genellikle içerik komut dosyaları, uzantı öğelerini yerleştirmekten sorumludur.
Bu örnekte uzantı, tam nitelikli bir URL oluşturmak için runtime.getURL()
kullanılarak content
script'in yerleştirildiği sayfaya logo.png
ekler. Ancak öncelikle öğe, manifest dosyasında web'de erişilebilen bir kaynak olarak bildirilmelidir.
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
Bir uzantının içerik komut dosyalarının, uzantının başka bir bölümü (ör. hizmet çalışanı) tarafından yönetilen verilere ihtiyacı olması yaygın bir durumdur. Aynı web sayfasında açılan iki tarayıcı penceresine benzer şekilde, bu iki bağlam birbirinin değerlerine doğrudan erişemez. Bunun yerine, uzantı 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 uzantının hizmet çalışanından bazı verilere ihtiyacı var. Bu verileri almak için geliştirici tarafından tanımlanan get-user-data
mesajını servis çalışanına iletir ve kullanıcının 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 toplama
Birçok uzantı, kullanıcılarına daha iyi hizmet verebilmek ve elde tutma oranını artırmak için kaldırma sonrası anketler 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 çalışma zamanı API'si örneği için Manifest V3 - Web Accessible Resources demosuna bakın.
Türler
ContextFilter
Belirli uzantı bağlamlarıyla eşleşecek bir filtre. Eşleşen bağlamlar, belirtilen tüm filtrelerle eşleşmelidir. Belirtilmeyen 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
boolean isteğe bağlı
-
tabIds
number[] isteğe bağlı
-
windowIds
number[] isteğe bağlı
ContextType
Enum
"TAB"
Bağlam türünü sekme olarak belirtir
"POPUP"
Bağlam türünü uzantı pop-up penceresi olarak belirtir
"BACKGROUND"
Bağlam türünü hizmet çalışanı olarak 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.
"DEVELOPER_TOOLS"
Bağlam türünü geliştirici araçları olarak belirtir.
ExtensionContext
Uzantı içeriğini barındıran bir bağlam.
Özellikler
-
contextId
dize
Bu bağlamın benzersiz tanımlayıcısı
-
contextType
Bunun karşılık geldiği bağlam türü.
-
documentId
dize isteğe bağlı
Bu bağlamla ilişkili dokümanın UUID'si veya bu bağlam bir dokümanda barındırılmıyorsa tanımsız.
-
documentOrigin
dize isteğe bağlı
Bu bağlamla ilişkili dokümanın kaynağı veya bağlam bir dokümanda barındırılmıyorsa tanımsız.
-
documentUrl
dize isteğe bağlı
Bu bağlamla ilişkili dokümanın URL'si veya bağlam bir dokümanda barındırılmıyorsa "undefined".
-
frameId
sayı
Bu bağlamın çerçevesinin kimliği veya bu bağlam bir çerçevede barındırılmıyorsa -1.
-
gizli
boolean
Bağlamın gizli profille ilişkili olup olmadığı.
-
tabId
sayı
Bu bağlamın sekme kimliği veya bu bağlam bir sekmede barındırılmıyorsa -1.
-
windowId
sayı
Bu bağlamın pencere kimliği veya bu bağlam bir pencerede barındırılmıyorsa -1.
MessageSender
Bir ileti veya istek gönderen komut dosyası bağlamı hakkında bilgi içeren bir nesne.
Özellikler
-
documentId
dize isteğe bağlı
Chrome 106 ve sonraki sürümlerBağlantıyı açan dokümanın UUID'si.
-
documentLifecycle
dize isteğe bağlı
Chrome 106 ve sonraki sürümlerBağlantıyı açan belgenin, bağlantı noktasının oluşturulduğu sırada bulunduğu yaşam döngüsü. Belgenin yaşam döngüsü durumunun, taşıma işlemi oluşturulduktan sonra değişmiş olabileceğini unutmayın.
-
frameId
number isteğe bağlı
Bağlantıyı açan çerçeve. Üst düzey çerçeveler için 0, alt çerçeveler için pozitif. Bu yalnızca
tab
ayarlandığında belirlenir. -
id
dize isteğe bağlı
Bağlantıyı açan uzantının kimliği (varsa).
-
nativeApplication
dize isteğe bağlı
Chrome 74 veya daha yeni bir sürümBağlantıyı açan yerel uygulamanın adı (varsa).
-
kaynak
dize isteğe bağlı
Chrome 80 veya daha yeni sürümlerBağlantıyı açan sayfanın veya çerçevenin kaynağı. URL özelliğinden (ör. about:blank) farklı olabilir veya opak olabilir (ör. korumalı alan iframe'leri). URL'den hemen anlayamadığımız durumlarda, kaynağın güvenilir olup olmadığını belirlemek için bu bilgi 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 (içerik komut dosyaları dahil) açıldığında ve yalnızca alıcı bir uygulama değil, uzantıysa bulunur. -
tlsChannelId
dize isteğe bağlı
Uzantı tarafından istenirse ve varsa bağlantıyı açan sayfanın veya çerçevenin TLS kanal kimliği.
-
url
dize isteğe bağlı
Bağlantıyı açan sayfanın veya çerçevenin URL'si. Gönderen bir iFrame'de bulunuyorsa, gönderenin URL'si, iFrame'i 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"
Etkinlik nedenini, paylaşılan bir modüldeki güncelleme olarak belirtir.
OnRestartRequiredReason
Etkinliğin gönderilme nedeni. Uygulama daha yeni bir sürüme güncellendiği için yeniden başlatma gerektiğinde "app_update" kullanılır. "os_update", tarayıcı/işletim sistemi daha yeni bir sürüme güncellendiği için yeniden başlatma gerektiğinde kullanılır. Sistem, kuruluş politikasında izin verilen çalışma süresinden daha uzun süre çalıştığında "periodic" kullanılır.
Enum
"app_update"
Etkinlik nedenini uygulamanın güncellenmesi olarak belirtir.
"os_update"
Etkinlik nedenini işletim sisteminde yapılan bir güncelleme olarak belirtir.
"periodic"
Etkinlik nedenini uygulamanın periyodik olarak yeniden başlatılması şeklinde belirtir.
PlatformArch
Makinenin işlemci mimarisi.
Enum
"arm"
İşlemci mimarisini arm 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.
"riscv64"
İşlemci mimarisini riscv64 olarak belirtir.
PlatformInfo
Mevcut platformla ilgili bilgileri içeren bir nesne.
Özellikler
-
arch
Makinenin işlemci mimarisi.
-
nacl_arch
PlatformNaclArch isteğe bağlı
Yerel istemci mimarisi. Bu, bazı platformlarda arch'tan farklı olabilir.
-
os
Chrome'un üzerinde çalıştığı işletim sistemi.
PlatformNaclArch
Yerel istemci mimarisi. Bu, bazı platformlarda arch'tan farklı olabilir.
Enum
"arm"
Yerel istemci mimarisini arm olarak belirtir.
"x86-32"
Yerel istemci mimarisini x86-32 olarak belirtir.
"x86-64"
Yerel istemci mimarisini x86-64 olarak belirtir.
"mips"
Yerel istemci mimarisini mips olarak belirtir.
"mips64"
Yerel istemci mimarisini mips64 olarak belirtir.
PlatformOs
Chrome'un üzerinde ç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"
Fuchsia işletim sistemini belirtir.
Port
Diğer sayfalarla iki yönlü iletişime olanak tanıyan bir nesne. Daha fazla bilgi için Uzun süreli bağlantılar başlıklı makaleyi inceleyin.
Özellikler
-
ad
dize
runtime.connect
çağrısında belirtilen bağlantı noktasının adı. -
onDisconnect
Event<functionvoidvoid>
Bağlantı noktası diğer uçlardan ayrıldığında tetiklenir. Bağlantı noktası bir hata nedeniyle bağlantısı kesildiyse
runtime.lastError
ayarlanabilir. Bağlantı kesilerek bağlantı noktası kapatılırsa bu etkinlik yalnızca diğer uçta tetiklenir. Bu etkinlik en fazla bir kez tetiklenir (Bağlantı noktası ömrü bölümüne de bakın).onDisconnect.addListener
işlevi şu şekilde görünür:(callback: function) => {...}
-
callback
işlev
callback
parametresi şu şekilde görünür:(port: Port) => void
-
bağlantı noktası
-
-
-
onMessage
Event<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) => {...}
-
callback
işlev
callback
parametresi şu şekilde görünür:(message: any, port: Port) => void
-
mesaj
herhangi
-
bağlantı noktası
-
-
-
gönderen
MessageSender isteğe bağlı
Bu özellik onConnect / onConnectExternal / onConnectNative dinleyicilerine iletilen bağlantı noktalarında yalnızca bulunur.
-
bağlantıyı kes
geçersiz
Bağlantı noktasını hemen çıkarın. Bağlantısı kesilmiş bir bağlantı noktasında
disconnect()
işlevinin çağrılmasının herhangi bir etkisi yoktur. Bir bağlantı noktası bağlantısı kesildiğinde bu bağlantı noktasına yeni etkinlikler gönderilmez.disconnect
işlevi şu şekilde görünür:() => {...}
-
postMessage
geçersiz
Bağlantı noktasının diğer ucuna mesaj gönderin. Bağlantı noktası bağlantısı kesilirse hata verilir.
postMessage
işlevi şu şekilde görünür:(message: any) => {...}
-
mesaj
herhangi
Chrome 52 veya daha yeni bir sürümGönderilecek mesaj. Bu nesne, JSON'a dönüştürülebilir olmalıdır.
-
RequestUpdateCheckStatus
Güncelleme kontrolünün sonucu.
Enum
"throttled"
Durum kontrolünün sınırlandırıldığını belirtir. Bu durum, kısa süre içinde tekrarlanan kontrollerden sonra ortaya çıkabilir.
"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şlevi çağrılırken hata oluşursa hata mesajıyla doldurulur, aksi takdirde undefined olur. Bu yalnızca söz konusu işlevin geri çağırma kapsamı içinde tanımlanır. Bir hata oluşursa ancak geri çağırma içinde runtime.lastError
erişilmezse hataya neden olan API işlevini listeleyen bir mesaj konsola kaydedilir. Söz döndüren API işlevleri bu özelliği ayarlamaz.
Tür
nesne
Özellikler
-
mesaj
dize isteğe bağlı
Oluşan hatayla ilgili ayrıntılar.
Yöntemler
connect()
chrome.runtime.connect(
extensionId?: string,
connectInfo?: object,
)
Bir uzantıdaki (ör. arka plan sayfası) veya diğer uzantılardaki/uygulamalardaki dinleyicileri bağlamaya çalışır. Bu, uzantı süreçlerine bağlanan içerik komut dosyaları, uygulamalar/uzantılar arası iletişim ve web mesajlaşması için yararlıdır. Bu işlevin, içerik senaryosundaki dinleyicilere bağlanmadığını unutmayın. Uzantılar, tabs.connect
aracılığıyla sekmelere yerleştirilmiş içerik komut dosyalarına bağlanabilir.
Parametreler
-
extensionId
dize isteğe bağlı
Bağlanılacak uzantının kimliği. Atlanırsa kendi uzantınızla bağlantı kurulmaya çalışılır. Web mesajlaşması için web sayfasından mesaj gönderiyorsanız gereklidir.
-
connectInfo
object isteğe bağlı
-
includeTlsChannelId
boolean isteğe bağlı
TLS kanal kimliğinin, bağlantı etkinliğini dinleyen işlemler için onConnectExternal'a iletilip iletilmeyeceği.
-
ad
dize isteğe bağlı
Bağlantı etkinliğini dinleyen işlemler için onConnect'e iletilir.
-
İadeler
-
İletilerin gönderilebileceği ve alınabileceği bağlantı noktası. Uzantı yoksa 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 Native Messaging'e bakın.
Parametreler
-
uygulama
dize
Bağlanılacak kayıtlı uygulamanın adı.
İadeler
-
Uygulamayla mesaj gönderip alabileceğiniz bağlantı noktası
getBackgroundPage()
chrome.runtime.getBackgroundPage(
callback?: function,
)
Arka plan sayfaları MV3 uzantılarında bulunmaz.
Geçerli uzantı/uygulama 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şlevi çağrılmadan önce sayfanın yüklendiğinden emin olur. Arka plan sayfası yoksa hata ayarlanır.
Parametreler
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(backgroundPage?: Window) => void
-
backgroundPage
Pencere isteğe bağlıdır.
Arka plan sayfası için JavaScript "window" nesnesi.
-
İadeler
-
Promise<Window | undefined>
Chrome 99 veya daha yeni bir sürümPromises, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. İkisini de aynı işlev çağrısında kullanamazsınız. The promise resolves with the same type that is passed to the callback.
getContexts()
chrome.runtime.getContexts(
filter: ContextFilter,
callback?: function,
)
Bu uzantıyla ilişkili etkin bağlamlar hakkında bilgi getirir.
Parametreler
-
filtrele
Eşleşen bağlamları bulmak için filtre. Bir bağlam, filtredeki belirtilen tüm alanlarla eşleşirse eşleşir. Filtrede belirtilmeyen tüm alanlar tüm bağlamlarla eşleşir.
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(contexts: ExtensionContext[]) => void
-
bağlamlar
Eşleşen bağlamlar (varsa).
-
İadeler
-
Promise<ExtensionContext[]>
Promises, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. İkisini de aynı işlev çağrısında kullanamazsınız. The promise resolves with the same type that is passed to the callback.
getManifest()
chrome.runtime.getManifest()
Manifest dosyasından 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.
İadeler
-
nesne
Manifest ayrıntıları.
getPackageDirectoryEntry()
chrome.runtime.getPackageDirectoryEntry(
callback?: function,
)
Paket dizini için bir DirectoryEntry döndürür.
Parametreler
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(directoryEntry: DirectoryEntry) => void
-
directoryEntry
DirectoryEntry
-
İadeler
-
Promise<DirectoryEntry>
Chrome 122 ve sonraki sürümlerPromises, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. İkisini de aynı işlev çağrısında kullanamazsınız. The promise resolves with the same type that is passed to the callback.
getPlatformInfo()
chrome.runtime.getPlatformInfo(
callback?: function,
)
Geçerli platform hakkında bilgi döndürür.
Parametreler
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(platformInfo: PlatformInfo) => void
-
platformInfo
-
İadeler
-
Promise<PlatformInfo>
Chrome 99 veya daha yeni bir sürümPromises, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. İkisini de aynı işlev çağrısında kullanamazsınız. The promise resolves with the same type that is passed to the callback.
getURL()
chrome.runtime.getURL(
path: string,
)
Bir uygulama/uzantı yükleme dizinindeki göreli yolu tam nitelikli bir URL'ye dönüştürür.
Parametreler
-
yol
dize
Bir uygulama/uzantı içindeki kaynağın, yükleme dizinine göre ifade edilen yolu.
İadeler
-
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
veya options_page
anahtarına ya da Chrome'un o sırada desteklediği öğelere bağlı olabilir. Örneğin, sayfa yeni bir sekmede, chrome://extensions içinde, bir uygulamada açılabilir veya açık bir seçenekler sayfasına odaklanabilir. Arayan sayfanın yeniden yüklenmesine asla neden olmaz.
Uzantınız bir seçenekler sayfası bildirmezse veya Chrome başka bir nedenden dolayı bir seçenekler sayfası oluşturamazsa geri çağırma lastError
değerini ayarlar.
Parametreler
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Promise<void>
Chrome 99 veya daha yeni bir sürümPromises, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. İkisini de aynı işlev çağrısında kullanamazsınız. The promise resolves with the same type that is passed to the callback.
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 hemen güncelleme kontrolü yapılmasını ister.
Önemli: Chrome birkaç saatte bir otomatik olarak kontrol yaptığından ve requestUpdateCheck'i çağırmanıza gerek kalmadan runtime.onUpdateAvailable
etkinliğini dinleyebildiğinizden çoğu uzantı/uygulama bu yöntemi kullanmamalıdır.
Bu yöntem yalnızca çok sınırlı durumlarda (ör. uzantınız bir arka uç hizmetiyle iletişim kuruyorsa ve arka uç hizmeti, istemci uzantısı sürümünün çok eski olduğunu belirlediyse ve kullanıcıdan güncelleme yapmasını istemek istiyorsanız) çağrılmaya uygundur. requestUpdateCheck'in diğer kullanımlarının çoğu (ör. tekrarlayan bir zamanlayıcıya göre koşulsuz olarak çağırma) muhtemelen yalnızca istemci, ağ ve sunucu kaynaklarını boşa harcamaya yarar.
Not: Geri çağırma ile çağrıldığında bu işlev, bir nesne döndürmek yerine iki özelliği geri çağırmaya iletilen ayrı bağımsız değişkenler olarak döndürür.
Parametreler
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(result: object) => void
-
sonuç
nesne
Chrome 109 veya daha yeni bir sürümGüncelleme kontrolünün durumunu ve güncelleme varsa sonuçla ilgili ayrıntıları içeren RequestUpdateCheckResult nesnesi
-
durum
Güncelleme kontrolünün sonucu.
-
sürüm
dize isteğe bağlı
Güncelleme varsa bu alan, mevcut güncellemenin sürümünü içerir.
-
-
İadeler
-
Promise<object>
Chrome 109 veya daha yeni bir sürümPromises, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. İkisini de aynı işlev çağrısında kullanamazsınız. The promise resolves with the same type that is passed to the callback.
restart()
chrome.runtime.restart()
Uygulama kiosk modunda çalışırken ChromeOS cihazı yeniden başlatın. Aksi takdirde işlem yapılmaz.
restartAfterDelay()
chrome.runtime.restartAfterDelay(
seconds: number,
callback?: function,
)
Uygulama, belirtilen süre sonunda kiosk modunda çalıştırıldığında ChromeOS cihazı yeniden başlatır. Süre dolmadan tekrar çağrılırsa yeniden başlatma işlemi geciktirilir. -1 değeriyle çağrılırsa yeniden başlatma işlemi iptal edilir. Kiosk modu dışında işlem yapılmaz. Bu API'yi çağıran ilk uzantı tarafından yalnızca tekrar tekrar çağrılmasına izin verilir.
Parametreler
-
saniye
sayı
Cihazın yeniden başlatılmadan önce beklenecek süre (saniye) veya planlanmış yeniden başlatmayı iptal etmek için -1.
-
callback
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:() => void
İadeler
-
Promise<void>
Chrome 99 veya daha yeni bir sürümPromises, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. İkisini de aynı işlev çağrısında kullanamazsınız. The promise resolves with the same type that is passed to the callback.
sendMessage()
chrome.runtime.sendMessage(
extensionId?: string,
message: any,
options?: object,
callback?: function,
)
Uzantınızdaki veya farklı bir uzantı/uygulamadaki etkinlik dinleyicilerine tek bir mesaj gönderir. runtime.connect
'ye benzer ancak isteğe bağlı yanıtla birlikte yalnızca tek bir mesaj gönderir. Uzantınıza gönderiyorsanız runtime.onMessage
etkinliği, gönderenin çerçevesi hariç olmak üzere uzantınızın her çerçevesinde veya farklı bir uzantıysa runtime.onMessageExternal
olarak 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
kullanın.
Parametreler
-
extensionId
dize 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şması için bir web sayfasından mesaj gönderiliyorsa zorunludur.
-
mesaj
herhangi
Gönderilecek mesaj. Bu mesaj, JSON'a dönüştürülebilir bir nesne olmalıdır.
-
seçenekler
object isteğe bağlı
-
includeTlsChannelId
boolean isteğe bağlı
TLS kanal kimliğinin, bağlantı etkinliğini dinleyen işlemler için onMessageExternal'a iletilip iletilmeyeceği.
-
-
callback
işlev isteğe bağlı
Chrome 99 veya daha yeni bir sürümcallback
parametresi şu şekilde görünür:(response: any) => void
-
gönderin
herhangi
İ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
runtime.lastError
hata mesajına ayarlanır.
-
İadeler
-
Promise<any>
Chrome 99 veya daha yeni bir sürümPromises, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. İkisini de aynı işlev çağrısında kullanamazsınız. The promise resolves with the same type that is passed to the callback.
sendNativeMessage()
chrome.runtime.sendNativeMessage(
application: string,
message: object,
callback?: function,
)
Yerel bir uygulamaya tek bir mesaj gönderme Bu yöntem için "nativeMessaging"
izni gerekir.
Parametreler
-
uygulama
dize
Yerel mesajlaşma ana makinesinin adı.
-
mesaj
nesne
Yerel mesajlaşma ana makinesine iletilecek mesaj.
-
callback
işlev isteğe bağlı
Chrome 99 veya daha yeni bir sürümcallback
parametresi şu şekilde görünür:(response: any) => void
-
gönderin
herhangi
Yerel mesajlaşma ana makinesi tarafından gönderilen yanıt mesajı. Yerel mesajlaşma ana makinesine bağlanırken bir hata oluşursa geri çağırma işlevi bağımsız değişken olmadan çağrılır ve
runtime.lastError
hata mesajına ayarlanır.
-
İadeler
-
Promise<any>
Chrome 99 veya daha yeni bir sürümPromises, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. İkisini de aynı işlev çağrısında kullanamazsınız. The promise resolves with the same type that is passed to the callback.
setUninstallURL()
chrome.runtime.setUninstallURL(
url: string,
callback?: function,
)
Kaldırma işleminden sonra ziyaret edilecek URL'yi ayarlar. Bu, sunucu tarafı verilerini temizlemek, analiz yapmak ve anket uygulamak için kullanılabilir. En fazla 1.023 karakter.
Parametreler
-
url
dize
Uzantı kaldırıldıktan sonra açılacak URL. Bu URL'de http: veya https: şeması olmalıdır. Kaldırma işleminden sonra yeni sekme açılmaması için boş bir dize ayarlayın.
-
callback
işlev isteğe bağlı
Chrome 45 ve sonraki sürümlercallback
parametresi şu şekilde görünür:() => void
İadeler
-
Promise<void>
Chrome 99 veya daha yeni bir sürümPromises, Manifest V3 ve sonraki sürümlerde desteklenir ancak geriye dönük uyumluluk için geri çağırmalar sağlanır. İkisini de aynı işlev çağrısında kullanamazsınız. The promise resolves with the same type that is passed to the callback.
Etkinlikler
onBrowserUpdateAvailable
chrome.runtime.onBrowserUpdateAvailable.addListener(
callback: function,
)
Lütfen runtime.onRestartRequired
kullanın.
Chrome güncellemesi mevcut olduğunda ancak tarayıcının yeniden başlatılması gerektiği için hemen yüklenmediğinde tetiklenir.
Parametreler
-
callback
işlev
callback
parametresi şu şekilde görünür:() => void
onConnect
chrome.runtime.onConnect.addListener(
callback: function,
)
Bir uzantı işleminden veya içerik komut dosyasından (runtime.connect
tarafından) bağlantı oluşturulduğunda tetiklenir.
Parametreler
-
callback
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
ile) veya harici olarak bağlanılabilir bir web sitesinden bağlantı oluşturulduğunda tetiklenir.
Parametreler
-
callback
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ı oluşturulduğunda tetiklenir. Bu etkinlik için "nativeMessaging"
izni gerekir. Yalnızca Chrome OS'te desteklenir.
Parametreler
-
callback
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, yeni bir sürüme güncellendiğinde ve Chrome yeni bir sürüme güncellendiğinde tetiklenir.
Parametreler
-
callback
işlev
callback
parametresi şu şekilde görünür:(details: object) => void
-
ayrıntılar
nesne
-
id
dize isteğe bağlı
Güncellenen, içe aktarılmış paylaşılan modül uzantısının kimliğini gösterir. Bu yalnızca "reason" değeri "shared_module_update" ise bulunur.
-
previousVersion
dize isteğe bağlı
Uzantının, yeni güncellenen önceki sürümünü gösterir. Bu yalnızca "reason" değeri "update" ise bulunur.
-
neden
Bu etkinliğin gönderilme nedeni.
-
-
onMessage
chrome.runtime.onMessage.addListener(
callback: function,
)
Bir ileti, uzantı işleminden (runtime.sendMessage
tarafından) veya içerik komut dosyasından (tabs.sendMessage
tarafından) gönderildiğinde tetiklenir.
Parametreler
-
callback
işlev
callback
parametresi şu şekilde görünür:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
-
mesaj
herhangi
-
gönderen
-
sendResponse
işlev
sendResponse
parametresi şu şekilde görünür:() => void
-
returns
boolean | undefined
-
onMessageExternal
chrome.runtime.onMessageExternal.addListener(
callback: function,
)
Başka bir uzantıdan (runtime.sendMessage
tarafından) mesaj gönderildiğinde tetiklenir. İçerik komut dosyasında kullanılamaz.
Parametreler
-
callback
işlev
callback
parametresi şu şekilde görünür:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
-
mesaj
herhangi
-
gönderen
-
sendResponse
işlev
sendResponse
parametresi şu şekilde görünür:() => void
-
returns
boolean | undefined
-
onRestartRequired
chrome.runtime.onRestartRequired.addListener(
callback: function,
)
Bir uygulamanın veya üzerinde çalıştığı cihazın yeniden başlatılması gerektiğinde tetiklenir. Uygulama, yeniden başlatmanın gerçekleşmesi için en kısa sürede tüm pencerelerini kapatmalıdır. Uygulama hiçbir işlem yapmazsa 24 saatlik ek süre sona erdikten sonra yeniden başlatma zorunlu kılınır. Şu anda bu etkinlik yalnızca Chrome OS kiosk uygulamaları için tetiklenir.
Parametreler
-
callback
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. Bu uzantı "bölünmüş" gizli modda çalışıyor olsa bile, gizli profil başlatıldığında bu etkinlik tetiklenmez.
Parametreler
-
callback
işlev
callback
parametresi şu şekilde görünür:() => void
onSuspend
chrome.runtime.onSuspend.addListener(
callback: function,
)
Etkinlik sayfası kaldırılmadan hemen önce gönderilir. Bu, uzantıya temizlik yapma fırsatı verir. Sayfa yüklenmediğinden, bu etkinlik işlenirken başlatılan tüm eşzamansız işlemlerin tamamlanacağı garanti edilmez. Etkinlik sayfası kaldırılmadan önce daha fazla etkinlik gerçekleşirse onSuspendCanceled etkinliği gönderilir ve sayfa kaldırılmaz.
Parametreler
-
callback
işlev
callback
parametresi şu şekilde görünür:() => void
onSuspendCanceled
chrome.runtime.onSuspendCanceled.addListener(
callback: function,
)
Uygulamanın yine de kaldırılmayacağını belirtmek için onSuspend'den sonra gönderilir.
Parametreler
-
callback
işlev
callback
parametresi şu şekilde görünür:() => void
onUpdateAvailable
chrome.runtime.onUpdateAvailable.addListener(
callback: function,
)
Bir güncelleme kullanıma sunulduğunda ancak uygulama şu anda çalıştığı için hemen yüklenmediğinde tetiklenir. Hiçbir şey yapmazsanız güncelleme, arka plan sayfası bir sonraki sefer kaldırıldığında yüklenir. Daha erken yüklenmesini istiyorsanız chrome.runtime.reload() işlevini açıkça çağırabilirsiniz. Uzantınız kalıcı bir arka plan sayfası kullanıyorsa 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 güncelleme, Chrome bir sonraki sefer yeniden başlatılana kadar yüklenmez. Bu etkinliği dinleyen işleyici yoksa ve uzantınızın kalıcı bir arka plan sayfası varsa bu etkinlik yanıt olarak chrome.runtime.reload() çağrılmış gibi davranır.
Parametreler
-
callback
işlev
callback
parametresi şu şekilde görünür:(details: object) => void
-
ayrıntılar
nesne
-
sürüm
dize
Kullanılabilir güncellemenin sürüm numarası.
-
-
onUserScriptConnect
chrome.runtime.onUserScriptConnect.addListener(
callback: function,
)
Bu uzantıdaki bir kullanıcı komut dosyasından bağlantı oluşturulduğunda tetiklenir.
Parametreler
-
callback
işlev
callback
parametresi şu şekilde görünür:(port: Port) => void
-
bağlantı noktası
-
onUserScriptMessage
chrome.runtime.onUserScriptMessage.addListener(
callback: function,
)
Aynı uzantıyla ilişkili bir kullanıcı komut dosyasından mesaj gönderildiğinde tetiklenir.
Parametreler
-
callback
işlev
callback
parametresi şu şekilde görünür:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
-
mesaj
herhangi
-
gönderen
-
sendResponse
işlev
sendResponse
parametresi şu şekilde görünür:() => void
-
returns
boolean | undefined
-