refresh date: 2026-09-25 robots: noindex
شرح
از chrome.runtime API برای بازیابی کارگر سرویس، برگرداندن جزئیات مانیفست، و گوش دادن و پاسخ دادن به رویدادها در چرخه حیات افزونه استفاده کنید. همچنین میتوانید از این میانای برنامهسازی کاربردی برای تبدیل مسیر نسبی نشانیهای وب به نشانیهای وب کاملاً واجد شرایط استفاده کنید.
نمای کلی
Runtime API روشهایی را برای پشتیبانی از تعدادی از حوزههای عملکردی ارائه میدهد که افزونههای شما میتوانند از آنها استفاده کنند:
- انتقال پیام
- افزونه شما میتواند بااستفاده از این روشها و رویدادها با زمینههای مختلف در افزونه شما و همچنین با افزونههای دیگر ارتباط برقرار کند: connect()، onConnect، onConnectExternal، sendMessage()، onMessage و onMessageExternal. In addition, your extension can pass messages to native applications on the user's device using connectNative() and sendNativeMessage().
- دسترسی به فراداده پلاتفرم و افزونه
- این روشها به شما امکان میدهند چندین بخش خاص از فراداده مربوط به افزونه و پلاتفرم را بازیابی کنید. روشهای این دسته شامل getManifest() و getPlatformInfo() است.
- مدیریت چرخه حیات و گزینههای افزونه
- این ویژگیها به شما امکان میدهند برخیاز فراعملیاتها را در افزونه انجام دهید و صفحه گزینهها را نمایش دهید. روشها و رویدادهای این دسته عبارتاند از: onInstalled، onStartup، openOptionsPage()، reload()، requestUpdateCheck()، و setUninstallURL().
- برنامههای کمکی کمکی
- این روشها ابزارهایی مانند تبدیل نمایش منابع داخلی به قالبهای خارجی را ارائه میدهند. روشهای این دسته شامل getURL() است.
- برنامههای کمکی حالت کیوسک
- این روشها فقط در ChromeOS دردسترس هستند و عمدتاً برای پشتیبانی از پیادهسازیهای کیوسک وجود دارند. روشهای این دسته شامل restart و restartAfterDelay است.
اجازهها
اکثر روشها در Runtime API به هیچ اجازهای نیاز ندارند، بهجز
sendNativeMessage و connectNative که
به اجازه nativeMessaging نیاز دارند.
مانیفست
مثال زیر نحوه اعلام اجازه nativeMessaging را در مانیفست نشان میدهد:
manifest.json:
{
"name": "My extension",
...
"permissions": [
"nativeMessaging"
],
...
}
موارد استفاده
افزودن تصویر به صفحه وب
برای اینکه صفحه وب به دارایی میزبانیشده در دامنه دیگری دسترسی داشته باشد، باید نشانی وب کامل منبع را مشخص کند
(مثلاً <img src="https://example.com/logo.png">). همین امر برای گنجاندن دارایی افزونه در
صفحه وب نیز صادق است. دو تفاوت این است که داراییهای افزونه باید بهعنوان منابع قابلدسترسی وب نمایش داده شوند و معمولاً متنهای محتوا مسئول تزریق داراییهای افزونه هستند.
در این مثال، افزونه logo.png را به صفحهای اضافه میکند که اسکریپت محتوا بااستفاده از runtime.getURL() برای ایجاد نشانی وب کاملاً واجدشرایط به آن تزریق میشود. اما ابتدا، دارایی باید بهعنوان منبع قابلدسترسی وب در مانیفست اعلام شود.
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);
}
ارسال داده از کارگر سرویس به اسکریپت محتوا
معمولاً اسکریپتهای محتوای افزونه به دادههایی نیاز دارند که توسط بخش دیگری از افزونه مدیریت میشود، مانند سرویسکار. درست مثل دو پنجره مرورگر که برای یک صفحه وب باز شدهاند، این دو زمینه نمیتوانند مستقیماً به مقادیر یکدیگر دسترسی داشته باشند. درعوض، افزونه میتواند از ارسال پیام برای هماهنگی در این زمینههای مختلف استفاده کند.
در این مثال، اسکریپت محتوا برای مقداردهی اولیه واسط کاربر خود به برخی دادهها از کارگر سرویس افزونه نیاز دارد. برای دریافت این دادهها، پیام get-user-data را به کارمند خدمات ارسال میکند و
کارمند خدمات با نسخهای از اطلاعات کاربر پاسخ میدهد.
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);
});
background.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);
}
});
جمعآوری بازخورد درباره حذف نصب
بسیاری از افزونهها از نظرسنجیهای پساز حذف نصب استفاده میکنند تا متوجه شوند افزونه چگونه میتواند بهتر به کاربرانش خدمترسانی کند و حفظ کاربر را بهبود بخشد. مثال زیر نحوه افزودن این عملکرد را نشان میدهد.
background.js:
chrome.runtime.onInstalled.addListener(details => {
if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
chrome.runtime.setUninstallURL('https://example.com/extension-survey');
}
});
نمونههای افزونه
برای نمونههای بیشتر از Runtime API، به نمونه نمایشی Manifest V3 - Web Accessible Resources مراجعه کنید.
انواع
ContextFilter
فیلتری برای مطابقت با زمینههای افزونه خاص. بافتهای منطبق باید با همه فیلترهای مشخصشده مطابقت داشته باشند؛ هر فیلتری که مشخص نشده باشد با همه بافتهای دردسترس مطابقت دارد. بنابراین، فیلتر `{}` با همه زمینههای موجود مطابقت خواهد داشت.
مشخصات
-
contextIds
رشته[] اختیاری
-
contextTypes
ContextType[] اختیاری
-
documentIds
رشته[] اختیاری
-
documentOrigins
رشته[] اختیاری
-
documentUrls
رشته[] اختیاری
-
frameIds
number[] اختیاری
-
ناشناس
بولی اختیاری
-
tabIds
number[] اختیاری
-
windowIds
number[] اختیاری
ContextType
شمارشی
«TAB»
نوع بافت را بهعنوان برگه مشخص میکند
«POPUP»
نوع بافت را بهعنوان پنجره بالاپر افزونه مشخص میکند
«پسزمینه»
نوع بافت را بهعنوان کارگر سرویس مشخص میکند.
«OFFSCREEN_DOCUMENT»
نوع بافت را بهعنوان سند خارج از صفحه مشخص میکند.
«SIDE_PANEL»
نوع بافت را بهعنوان پانل کناری مشخص میکند.
«DEVELOPER_TOOLS»
نوع بافت را بهعنوان ابزارهای توسعهدهندگان مشخص میکند.
ExtensionContext
بافتی که محتوای افزونه را میزبانی میکند.
مشخصات
-
contextId
رشته
شناسه یکتا برای این زمینه
-
contextType
نوع زمینهای که این مورد با آن مطابقت دارد.
-
documentId
رشته اختیاری
یک UUID برای سند مرتبط با این زمینه، یا تعریفنشده اگر این زمینه در سند میزبانی نشده باشد.
-
documentOrigin
رشته اختیاری
منشأ سند مرتبط با این زمینه، یا تعریفنشده اگر زمینه در سندی میزبانی نشده باشد.
-
documentUrl
رشته اختیاری
نشانی وب سند مرتبط با این زمینه، یا تعریفنشده اگر زمینه در سندی میزبانی نشده باشد.
-
frameId
شماره
شناسه قاب برای این بافت، یا -۱ اگر این بافت در قابی میزبانی نشده باشد.
-
ناشناس
بولی
اینکه آیا زمینه با نمایه ناشناس مرتبط است یا نه.
-
tabId
شماره
شناسه برگه برای این زمینه، یا -۱ اگر این زمینه در برگه میزبانی نشده باشد.
-
windowId
شماره
شناسه پنجره برای این زمینه، یا ۱- اگر این زمینه در پنجرهای میزبانی نشده باشد.
ExtensionLoadDetails
جزئیات مربوط به رویداد بارگیری افزونه.
مشخصات
-
previousVersion
رشته اختیاری
نشاندهنده نسخه قبلی افزونه است. این مورد فقط درصورتی وجود دارد که «دلیل» از نوع «بهروزرسانی» یا «فعال کردن» باشد. اگر «دلیل» «بهروزرسانی» باشد، این نسخه افزونه قبلاز بهروزرسانی است. اگر «دلیل» «فعال کردن» باشد، این نسخه فعلی افزونه است.
-
دلیل
دلیل ارسال این رویداد.
MessageSender
شیئی حاوی اطلاعاتی درباره بافتار اسکریپتی که پیام یا درخواستی را ارسال کرده است.
مشخصات
-
documentId
رشته اختیاری
Chrome نسخه ۱۰۶ و بالاترشناسه UUID سندی که اتصال را باز کرده است.
-
documentLifecycle
رشته اختیاری
Chrome نسخه ۱۰۶ و بالاترچرخه حیات سندی که اتصال را باز کرده است در زمانی که درگاه ایجاد شده است. توجه داشته باشید که ممکن است وضعیت چرخه حیات سند از زمان ایجاد درگاه تغییر کرده باشد.
-
frameId
شماره اختیاری
قابی که اتصال را باز کرده است. ۰ برای قابهای سطح بالا، مثبت برای قابهای فرزند. این فقط زمانی تنظیم میشود که
tabتنظیم شده باشد. -
id
رشته اختیاری
شناسه افزونهای که اتصال را باز کرده است (درصورت وجود).
-
nativeApplication
رشته اختیاری
Chrome نسخه ۷۴ و بالاترنام برنامه بومی که اتصال را باز کرده است (درصورت وجود).
-
منشأ
رشته اختیاری
Chrome نسخه ۸۰ به بالامبدأ صفحه یا قابی که اتصال را باز کرده است. این مقدار میتواند با ویژگی url متفاوت باشد (مثلاً about:blank) یا میتواند مبهم باشد (مثلاً iframeهای سندباکسشده). این روش برای شناسایی اینکه آیا میتوان به منبع اعتماد کرد یا نه مفید است، بهویژه اگر نتوانیم فوراً از نشانی وب به این موضوع پی ببریم.
-
جهش
برگه اختیاری
tabs.Tabکه اتصال را باز کرده است (درصورت وجود). این ویژگی فقط زمانی وجود خواهد داشت که اتصال از یک برگه (شامل اسکریپتهای محتوا) باز شده باشد، و فقط اگر گیرنده یک افزونه باشد، نه یک برنامه. -
tlsChannelId
رشته اختیاری
شناسه کانال TLS صفحه یا قابی که اتصال را باز کرده است، درصورت درخواست افزونه و درصورت دردسترس بودن.
-
نشانی وب
رشته اختیاری
نشانی وب صفحه یا قابی که اتصال را باز کرده است. اگر فرستنده در iframe باشد، نشانی وب iframe خواهد بود نه نشانی وب صفحهای که میزبان آن است.
OnInstalledReason
دلیل ارسال این رویداد.
شمارشی
«install»
دلیل رویداد را بهعنوان نصب مشخص میکند.
«update»
دلیل رویداد را بهعنوان بهروزرسانی افزونه مشخص میکند.
"chrome_update"
دلیل رویداد را بهعنوان بهروزرسانی Chrome مشخص میکند.
"shared_module_update"
دلیل رویداد را بهعنوان بهروزرسانی در یک ماژول همرسانیشده مشخص میکند.
OnLoadedReason
دلیل ارسال این رویداد.
شمارشی
"install"
افزونه بهتازگی نصب شده است.
«update»
افزونه پساز بهروزرسانی مجدداً بار شد.
«browser_update»
مرورگر به نسخه جدیدی بهروزرسانی شد.
«فعال کردن»
افزونه از حالت غیرفعال دوباره فعال شد.
«startup»
افزونه درحال بار شدن درطول راهاندازی مرورگر است.
«reload»
افزونه مجدداً بار شد (مثلاً ازطریق chrome.runtime.reload() یا کاربر بهصورت دستی افزونه را مجدداً بار کرد).
OnRestartRequiredReason
دلیل ارسال رویداد. وقتی بازراهاندازی بهدلیل بهروزرسانی برنامه به نسخه جدیدتر لازم باشد، از «app_update» استفاده میشود. وقتی بازراهاندازی بهدلیل بهروزرسانی مرورگر/ سیستمعامل به نسخه جدیدتر لازم باشد، از os_update استفاده میشود. وقتی سیستم بیشتر از زمان فعال بودن دستگاه مجاز تنظیمشده در خطمشی سازمانی اجرا شود، از «periodic» استفاده میشود.
شمارشی
«app_update»
دلیل رویداد را بهعنوان بهروزرسانی برنامه مشخص میکند.
"os_update"
دلیل رویداد را بهعنوان بهروزرسانی سیستمعامل مشخص میکند.
«periodic»
دلیل رویداد را بهعنوان بازراهاندازی دورهای برنامه مشخص میکند.
PlatformArch
معماری پردازنده دستگاه.
شمارشی
«arm»
معماری پردازنده را بهعنوان arm مشخص میکند.
«arm64»
معماری پردازنده را بهعنوان arm64 مشخص میکند.
«x86-32»
ساختار پردازنده را بهعنوان x86-32 مشخص میکند.
«x86-64»
معماری پردازنده را بهعنوان x86-64 مشخص میکند.
«mips»
معماری پردازنده را بهعنوان mips مشخص میکند.
«mips64»
معماری پردازنده را بهعنوان mips64 مشخص میکند.
«riscv64»
ساختار پردازنده را بهعنوان riscv64 مشخص میکند.
PlatformInfo
شیئی حاوی اطلاعاتی درباره پلاتفرم فعلی.
مشخصات
-
طاق
معماری پردازنده دستگاه.
-
nacl_arch
PlatformNaclArch اختیاری
از Chrome 149 منسوخ شده استاین مشخصه بهدنبال حذف کامل Native Client منسوخ شده است.
معماری کارخواه بومی. این ممکن است با arch در برخی پلاتفرمها متفاوت باشد.
-
os
سیستمعاملی که Chrome روی آن اجرا میشود.
PlatformNaclArch
این شمارشگر بهدنبال حذف کامل Native Client منسوخ شده است.
معماری کارخواه بومی. این ممکن است با arch در برخی پلاتفرمها متفاوت باشد.
شمارشی
«arm»
معماری کارخواه بومی را بهعنوان arm مشخص میکند.
«x86-32»
معماری کلاینت بومی را بهعنوان x86-32 مشخص میکند.
«x86-64»
معماری کلاینت بومی را بهعنوان x86-64 مشخص میکند.
«mips»
معماری کلاینت بومی را بهعنوان mips مشخص میکند.
"mips64"
معماری کارخواه بومی را بهعنوان mips64 مشخص میکند.
PlatformOs
سیستمعاملی که Chrome روی آن اجرا میشود.
شمارشی
«mac»
سیستمعامل MacOS را مشخص میکند.
"win"
سیستمعامل Windows را مشخص میکند.
"android"
سیستمعامل Android را مشخص میکند.
«cros»
سیستمعامل Chrome را مشخص میکند.
«linux»
سیستمعامل Linux را مشخص میکند.
"openbsd"
سیستمعامل OpenBSD را مشخص میکند.
Port
شیئی که امکان ارتباط دوطرفه با صفحههای دیگر را فراهم میکند. برای اطلاعات بیشتر، اتصالهای طولانیمدت را ببینید.
مشخصات
-
نام
رشته
نام درگاه، همانطور که در تماس با
runtime.connectمشخص شده است. -
onDisconnect
Event<functionvoidvoid>
وقتی درگاه از سر(های) دیگر قطع شود، فعال میشود. اگر درگاه بهدلیل خطا قطع شده باشد، ممکن است
runtime.lastErrorتنظیم شود. اگر درگاه ازطریق قطع اتصال بسته شود، این رویداد فقط در طرف دیگر فعال میشود. این رویداد حداکثر یکبار فعال میشود (طول عمر درگاه را نیز ببینید).تابع
onDisconnect.addListenerبهصورت زیر است:(callback: function) => {...}
-
onMessage
Event<functionvoidvoid>
این رویداد زمانی فعال میشود که postMessage توسط طرف دیگر درگاه فراخوانده شود.
تابع
onMessage.addListenerبهصورت زیر است:(callback: function) => {...}
-
فرستنده
MessageSender اختیاری
این ویژگی فقط در درگاههایی وجود خواهد داشت که به شنوندگان onConnect / onConnectExternal / onConnectNative ارسال شدهاند.
-
قطع کردن اتصال
باطل کردن
فوراً درگاه را جدا کنید. Calling
disconnect()on an already-disconnected port has no effect. وقتی درگاهی قطع میشود، هیچ رویداد جدیدی به این درگاه ارسال نخواهد شد.تابع
disconnectبهصورت زیر است:() => {...} -
postMessage
باطل کردن
پیامی به سر دیگر درگاه ارسال کنید. اگر درگاه قطع شود، خطایی ایجاد میشود.
تابع
postMessageبهصورت زیر است:(message: any) => {...}
-
پیام
همه
Chrome نسخه ۵۲ و بالاترپیام برای ارسال. این شیء باید JSON-ifiable باشد.
-
RequestUpdateCheckStatus
نتیجه بررسی بهروزرسانی.
شمارشی
«throttled»
مشخص میکند که بررسی وضعیت محدود شده است. این اتفاق ممکن است پساز بررسیهای مکرر در مدتزمان کوتاهی رخ دهد.
"no_update"
مشخص میکند که هیچ بهروزرسانیای برای نصب دردسترس نیست.
"update_available"
مشخص میکند که بهروزرسانی دردسترسی برای نصب وجود دارد.
مشخصات
id
شناسه افزونه/برنامه.
نوع
رشته
lastError
اگر فراخوانی تابع میانای برنامهسازی کاربردی ناموفق باشد، با پیام خطا پر میشود؛ درغیراینصورت تعریفنشده است. این فقط در محدوده کال بک آن تابع تعریف شده است. اگر خطایی ایجاد شود، اما در بازگشت تماس به runtime.lastError دسترسی پیدا نشود، پیامی در کنسول ثبت میشود که تابع API ایجادکننده خطا را فهرست میکند. توابع API که وعدهها را برمیگردانند این ویژگی را تنظیم نمیکنند.
نوع
شیء
مشخصات
-
پیام
رشته اختیاری
جزئیات مربوط به خطایی که رخ داده است.
روشها
connect()
chrome.runtime.connect(
extensionId?: string,
connectInfo?: object,
): Port
تلاش میکند شنوندگان را در افزونه (مثل صفحه پسزمینه) یا افزونهها/برنامههای دیگر متصل کند. این امر برای اسکریپتهای محتوا که به فرایندهای افزونه خود متصل میشوند، ارتباط بین برنامه/افزونه، و پیامرسانی وب مفید است. توجه داشته باشید که این به هیچ شنوندهای در اسکریپت محتوا متصل نمیشود. افزونهها ممکن است ازطریق tabs.connect به متنهای محتوای جاسازیشده در برگهها متصل شوند.
پارامترها
-
extensionId
رشته اختیاری
شناسه افزونهای که باید به آن متصل شود. اگر حذف شود، تلاش میشود با افزونه خودتان اتصال برقرار شود. اگر پیامها از صفحه وب برای پیامرسانی وب ارسال میشود، الزامی است.
-
connectInfo
شیء اختیاری
-
includeTlsChannelId
بولی اختیاری
اینکه آیا شناسه کانال TLS برای فرایندهایی که به رویداد اتصال گوش میدهند به onConnectExternal ارسال خواهد شد یا نه.
-
نام
رشته اختیاری
برای فرایندهایی که منتظر رویداد اتصال هستند، به onConnect منتقل خواهد شد.
-
بازگشتیها
-
درگاهی که ازطریق آن پیامها ارسال و دریافت میشوند. اگر افزونه وجود نداشته باشد، رویداد onDisconnect درگاه فعال میشود.
connectNative()
chrome.runtime.connectNative(
application: string,
): Port
به برنامه بومی در دستگاه میزبان متصل میشود. این روش به اجازه "nativeMessaging" نیاز دارد. برای اطلاعات بیشتر، پیامرسانی بومی را ببینید.
پارامترها
-
برنامه
رشته
نام برنامه ثبتشده برای اتصال به آن.
بازگشتیها
-
درگاهی که ازطریق آن میتوان با برنامه پیام ارسال و دریافت کرد
getBackgroundPage()
chrome.runtime.getBackgroundPage(
callback?: function,
): Promise<Window | undefined>
صفحههای پسزمینه در افزونههای MV3 وجود ندارند.
شیء «پنجره» جاوا اسکریپت را برای صفحه پسزمینه درحال اجرا در افزونه/برنامه فعلی بازیابی میکند. اگر صفحه پسزمینه صفحه رویداد باشد، سیستم مطمئن میشود که قبلاز فراخوانی برگشت فراخوان بار شده است. اگر صفحه پسزمینهای وجود نداشته باشد، خطایی تنظیم میشود.
پارامترها
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:(backgroundPage?: Window) => void
-
backgroundPage
پنجره اختیاری
شیء «پنجره» جاوا اسکریپت برای صفحه پسزمینه.
-
بازگشتیها
-
Promise<Window | undefined>
Chrome نسخه ۹۹ و بالاترPromises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
getManifest()
chrome.runtime.getManifest(): object
جزئیات مربوط به برنامه یا افزونه را از مانیفست برمیگرداند. شیء برگرداندهشده سریسازیشده فایل مانیفست کامل است.
بازگشتیها
-
شیء
جزئیات مانیفست.
getPackageDirectoryEntry()
chrome.runtime.getPackageDirectoryEntry(
callback?: function,
): Promise<DirectoryEntry>
DirectoryEntry را برای دایرکتوری بسته برمیگرداند.
پارامترها
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:(directoryEntry: DirectoryEntry) => void
-
directoryEntry
DirectoryEntry
-
بازگشتیها
-
Promise<DirectoryEntry>
Chrome نسخه ۱۲۲ و بالاترPromises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
getPlatformInfo()
chrome.runtime.getPlatformInfo(
callback?: function,
): Promise<PlatformInfo>
اطلاعات مربوط به پلاتفرم فعلی را برمیگرداند.
پارامترها
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:(platformInfo: PlatformInfo) => void
-
platformInfo
-
بازگشتیها
-
Promise<PlatformInfo>
Chrome نسخه ۹۹ و بالاترPromise که با اطلاعات مربوط به پلاتفرم فعلی حل میشود.
Promises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
getURL()
chrome.runtime.getURL(
path: string,
): string
مسیر نسبی را در دایرکتوری نصب برنامه/ افزونه به نشانی وب کاملاً واجد شرایط تبدیل میکند.
پارامترها
-
مسیر
رشته
مسیر منبعی در برنامه/ افزونه که نسبتبه دایرکتوری نصب آن بیان شده است.
بازگشتیها
-
رشته
نشانی وب کاملاً واجد شرایط منبع.
getVersion()
chrome.runtime.getVersion(): string
نسخه افزونه را همانطور که در مانیفست اعلام شده است برمیگرداند.
بازگشتیها
-
رشته
نسخه افزونه.
openOptionsPage()
chrome.runtime.openOptionsPage(
callback?: function,
): Promise<void>
درصورت امکان، صفحه گزینههای «افزونه» را باز کنید.
رفتار دقیق ممکن است به کلید options_ui یا options_page مانیفست شما یا آنچه Chrome در آن زمان پشتیبانی میکند بستگی داشته باشد. برای مثال، ممکن است صفحه در برگه جدیدی، در chrome://extensions، در یک برنامه باز شود، یا ممکن است فقط روی صفحه گزینههای باز تمرکز کند. این کار هرگز باعث بار کردن مجدد صفحه تماسگیرنده نمیشود.
اگر «افزونه» شما صفحه گزینهها را اعلام نکند، یا Chrome به دلیل دیگری نتواند آن را ایجاد کند، فراخوان برگشتی lastError را تنظیم خواهد کرد.
پارامترها
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:() => void
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۹ و بالاترPromises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
reload()
chrome.runtime.reload(): void
برنامه یا افزونه را مجدداً بار میکند. این روش در حالت کیوسک پشتیبانی نمیشود. برای حالت کیوسک، از روش chrome.runtime.restart() استفاده کنید.
requestUpdateCheck()
chrome.runtime.requestUpdateCheck(
callback?: function,
): Promise<object>
درخواست میکند بررسی بهروزرسانی فوری برای این برنامه/افزونه انجام شود.
مهم: اکثر افزونهها/برنامهها نباید از این روش استفاده کنند، زیرا Chrome ازقبل هر چند ساعت یکبار بررسیهای خودکار انجام میدهد و شما میتوانید بدون نیاز به فراخوانی requestUpdateCheck، رویداد runtime.onUpdateAvailable را گوش دهید.
این روش فقط برای فراخوانی در شرایط بسیار محدود مناسب است، مثلاً اگر افزونه شما با سرویس پسزمینهای صحبت میکند و سرویس پسزمینهای تشخیص داده است که نسخه افزونه کارخواه بسیار قدیمی است و میخواهید از کاربر بخواهید بهروزرسانی کند. اکثر موارد استفاده دیگر از requestUpdateCheck، مانند فراخوانی بیقیدوشرط آن براساس زمانسنج تکرارشونده، احتمالاً فقط باعث هدر رفتن منابع کارخواه، شبکه، و سرور میشود.
توجه: وقتی با فراخوانی متقابل تماس گرفته میشود، این عملکرد بهجای برگرداندن شیء، دو ویژگی را بهعنوان متغیرهای مستقل جداگانه که به فراخوانی متقابل ارسال شدهاند برمیگرداند.
پارامترها
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:(result: object) => void
-
نتیجه
شیء
Chrome نسخه ۱۰۹ و بالاترشیء RequestUpdateCheckResult که وضعیت بررسی بهروزرسانی و جزئیات نتیجه را درصورت دردسترس بودن بهروزرسانی نگه میدارد
-
وضعیت
نتیجه بررسی بهروزرسانی.
-
نسخه
رشته اختیاری
اگر بهروزرسانی دردسترس باشد، این مورد حاوی نسخه بهروزرسانی دردسترس است.
-
-
بازگشتیها
-
Promise<object>
Chrome نسخه ۱۰۹ و بالاترPromises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
restart()
chrome.runtime.restart(): void
وقتی برنامه در حالت کیوسک اجرا میشود، دستگاه ChromeOS را بازراهاندازی کنید. درغیراینصورت، هیچ عملیاتی انجام نمیشود.
restartAfterDelay()
chrome.runtime.restartAfterDelay(
seconds: number,
callback?: function,
): Promise<void>
وقتی برنامه در حالت کیوسک اجرا میشود، دستگاه ChromeOS را پساز ثانیههای مشخصشده بازراهاندازی کنید. اگر قبلاز پایان زمان دوباره فراخوانی شود، راهاندازی مجدد بهتأخیر خواهد افتاد. اگر با مقدار ۱- فراخوانی شود، بازراهاندازی لغو خواهد شد. در حالت غیرکیوسک، این عملیات انجام نمیشود. فقط اولین افزونهای که این API را فراخوانی میکند مجاز است آن را بهطور مکرر فراخوانی کند.
پارامترها
-
ثانیه
شماره
زمان انتظار به ثانیه قبلاز بازراهاندازی دستگاه، یا ۱- برای لغو بازراهاندازی زمانبندیشده.
-
تماس برگشتی
تابع اختیاری
پارامتر
callbackبهصورت زیر است:() => void
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۹ و بالاترPromise که وقتی درخواست بازراهاندازی باموفقیت زمانبندی مجدد شد، حل میشود.
Promises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
sendMessage()
chrome.runtime.sendMessage(
extensionId?: string,
message: any,
options?: object,
callback?: function,
): Promise<any>
یک پیام تکی به شنوندگان رویداد در افزونه شما یا افزونه/برنامه دیگری ارسال میکند. مشابه runtime.connect است اما فقط یک پیام تکی با پاسخ اختیاری ارسال میکند. اگر به افزونه شما ارسال شود، رویداد runtime.onMessage در هر قاب افزونه شما (بهجز قاب فرستنده) یا runtime.onMessageExternal (اگر افزونه دیگری باشد) فعال خواهد شد. توجه داشته باشید که افزونهها نمیتوانند بااستفاده از این روش به دستورگانهای محتوا پیام ارسال کنند. برای ارسال پیام به دستورگانهای محتوا، از tabs.sendMessage استفاده کنید.
پارامترها
-
extensionId
رشته اختیاری
شناسه افزونهای که پیام به آن ارسال میشود. اگر حذف شود، پیام به افزونه/برنامه خودتان ارسال خواهد شد. اگر پیامها از صفحه وب برای پیامرسانی وب ارسال شود، الزامی است.
-
پیام
همه
پیام برای ارسال. این پیام باید شیء JSON-ifiable باشد.
-
گزینهها
شیء اختیاری
-
includeTlsChannelId
بولی اختیاری
آیا شناسه کانال TLS برای فرایندهایی که به رویداد اتصال گوش میدهند به onMessageExternal منتقل خواهد شد یا نه.
-
-
تماس برگشتی
تابع اختیاری
Chrome نسخه ۹۹ و بالاترپارامتر
callbackبهصورت زیر است:(response: any) => void
-
پاسخ
همه
شیء پاسخ JSON که توسط گرداننده پیام ارسال شده است. اگر هنگام اتصال به افزونه خطایی رخ دهد، فراخوانی برگشتی بدون هیچ آرگومانی فراخوانی میشود و
runtime.lastErrorروی پیام خطا تنظیم میشود.
-
بازگشتیها
-
Promise<any>
Chrome نسخه ۹۹ و بالاترپشتیبانی Promise برای زمینههای افزونه در Chrome 99 اضافه شد. هنگام برقراری ارتباط از صفحه وب به افزونه، وعدهها از Chrome 118 دردسترس هستند.
Promises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
sendNativeMessage()
chrome.runtime.sendNativeMessage(
application: string,
message: object,
callback?: function,
): Promise<any>
ارسال یک پیام به برنامه بومی. این روش به اجازه "nativeMessaging" نیاز دارد.
پارامترها
-
برنامه
رشته
نام میزبان پیامرسانی بومی یا جزئیات هدف.
-
پیام
شیء
پیامی که به میزبان پیامرسانی بومی ارسال خواهد شد.
-
تماس برگشتی
تابع اختیاری
Chrome نسخه ۹۹ و بالاترپارامتر
callbackبهصورت زیر است:(response: any) => void
-
پاسخ
همه
پیام پاسخ ارسالشده توسط میزبان پیامرسانی بومی. اگر هنگام اتصال به میزبان پیامرسانی بومی خطایی رخ دهد، فراخوانی برگشتی بدون آرگومان فراخوانی میشود و
runtime.lastErrorروی پیام خطا تنظیم میشود.
-
بازگشتیها
-
Promise<any>
Chrome نسخه ۹۹ و بالاترPromises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
setUninstallURL()
chrome.runtime.setUninstallURL(
url: string,
callback?: function,
): Promise<void>
نشانی وبی را که باید پساز حذف نصب بازدید شود تنظیم میکند. ممکن است از این اطلاعات برای پاکسازی دادههای سمت سرور، انجام تجزیهوتحلیل، و اجرای نظرسنجیها استفاده شود. حداکثر ۱۰۲۳ نویسه.
پارامترها
-
نشانی وب
رشته
نشانی وبی که پساز حذف نصب افزونه باز میشود. این نشانی وب باید طرح http: یا https: داشته باشد. رشته خالی تنظیم کنید تا پساز حذف نصب، برگه جدیدی باز نشود.
-
تماس برگشتی
تابع اختیاری
Chrome نسخه ۴۵ به بالاپارامتر
callbackبهصورت زیر است:() => void
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۹ و بالاترPromise که وقتی نشانی وب حذف نصب تنظیم شود حل میشود. اگر نشانی وب ارائهشده نامعتبر باشد، وعده رد خواهد شد.
Promises فقط برای «مانیفست نسخه ۳» و نسخههای جدیدتر پشتیبانی میشود، پلاتفرمهای دیگر باید از callbacks استفاده کنند.
رویدادها
onBrowserUpdateAvailable
chrome.runtime.onBrowserUpdateAvailable.addListener(
callback: function,
)
لطفاً از runtime.onRestartRequired استفاده کنید.
وقتی بهروزرسانی Chrome دردسترس باشد اما بهدلیل نیاز به بازراهاندازی مرورگر فوراً نصب نشود، فعال میشود.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:() => void
onConnect
chrome.runtime.onConnect.addListener(
callback: function,
)
وقتی اتصالی ازطریق فرایند افزونه یا اسکریپت محتوا (توسط runtime.connect) برقرار شود، فعال میشود.
onConnectExternal
chrome.runtime.onConnectExternal.addListener(
callback: function,
)
وقتی اتصالی از افزونه دیگری (توسط runtime.connect) یا از وبسایت قابلاتصال خارجی برقرار شود، فعال میشود.
onConnectNative
chrome.runtime.onConnectNative.addListener(
callback: function,
)
وقتی اتصالی از برنامه بومی برقرار میشود، فعال میشود. این رویداد به اجازه "nativeMessaging" نیاز دارد. این ویژگی فقط در Chrome OS پشتیبانی میشود.
onEnabled
chrome.runtime.onEnabled.addListener(
callback: function,
)
وقتی افزونهای از حالت غیرفعال به حالت فعال میرود، فعال میشود.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:() => void
onExtensionLoaded
chrome.runtime.onExtensionLoaded.addListener(
callback: function,
)
وقتی افزونه به مجموعه افزونههای فعال اضافه میشود، فعال میشود. این اتفاق ممکن است در چند سناریو رخ دهد: وقتی افزونهای برای اولینبار نصب میشود، به نسخه جدیدی بهروز میشود، پساز غیرفعال شدن دوباره فعال میشود، مجدداً بار میشود، درطول راهاندازی مرورگر بار میشود، یا وقتی مرورگر به نسخه جدیدی بهروز میشود بار میشود.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:(details: ExtensionLoadDetails) => void
-
جزئیات
-
onInstalled
chrome.runtime.onInstalled.addListener(
callback: function,
)
هنگامی که افزونه برای اولینبار نصب میشود، زمانی که افزونه به نسخه جدید بهروز میشود، و زمانی که Chrome به نسخه جدید بهروز میشود، فعال میشود.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:(details: object) => void
-
جزئیات
شیء
-
id
رشته اختیاری
شناسه افزونه واحد همرسانیشده واردشده را که بهروز شده است نشان میدهد. این مورد فقط درصورتی وجود دارد که «دلیل» برابر با «shared_module_update» باشد.
-
previousVersion
رشته اختیاری
نسخه قبلی افزونه را که بهتازگی بهروز شده است نشان میدهد. این مورد فقط درصورتی وجود دارد که «دلیل» «بهروزرسانی» باشد.
-
دلیل
دلیل ارسال این رویداد.
-
-
onMessage
chrome.runtime.onMessage.addListener(
callback: function,
)
وقتی پیامی از runtime.sendMessage یا tabs.sendMessage ارسال میشود، فعال میشود.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:(message: any, sender: MessageSender, sendResponse: function) => boolean | Promise<any> | undefined
-
پیام
همه
-
فرستنده
-
sendResponse
عملکرد
پارامتر
sendResponseبهصورت زیر است:(response?: any) => void
-
پاسخ
هر اختیاری
پاسخی که باید به فرستنده پیام برگردانده شود.
-
-
returns
boolean | Promise<any> | undefined
-
onMessageExternal
chrome.runtime.onMessageExternal.addListener(
callback: function,
)
وقتی پیامی از افزونه دیگری ارسال میشود (توسط runtime.sendMessage) فعال میشود. نمیتوان از آن در اسکریپت محتوا استفاده کرد.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:(message: any, sender: MessageSender, sendResponse: function) => boolean | Promise<any> | undefined
-
پیام
همه
-
فرستنده
-
sendResponse
عملکرد
پارامتر
sendResponseبهصورت زیر است:(response?: any) => void
-
پاسخ
هر اختیاری
پاسخی که باید به فرستنده پیام برگردانده شود.
-
-
returns
boolean | Promise<any> | undefined
-
onRestartRequired
chrome.runtime.onRestartRequired.addListener(
callback: function,
)
وقتی برنامه یا دستگاهی که برنامه در آن اجرا میشود باید بازراهاندازی شود، فعال میشود. برنامه باید در اولین فرصت مناسب همه پنجرههایش را ببندد تا بازراهاندازی انجام شود. اگر برنامه کاری انجام ندهد، پساز گذشت مهلت ارفاقی ۲۴ ساعته، بازراهاندازی اجباری انجام خواهد شد. درحالحاضر، این رویداد فقط برای برنامههای کیوسکی Chrome OS اجرا میشود.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:(reason: OnRestartRequiredReason) => void
onStartup
chrome.runtime.onStartup.addListener(
callback: function,
)
وقتی نمایهای که این افزونه را نصب کرده است برای اولینبار راهاندازی میشود، فعال میشود. این رویداد هنگام شروع نمایه ناشناس فعال نمیشود، حتی اگر این افزونه در حالت ناشناس «تقسیمشده» کار کند.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:() => void
onSuspend
chrome.runtime.onSuspend.addListener(
callback: function,
)
درست قبلاز بارگیری نشدن صفحه رویداد، به آن ارسال میشود. این کار به افزونه فرصت میدهد تا برخیاز پاکسازیها را انجام دهد. توجه داشته باشید که چون صفحه درحال تخلیه است، تکمیل هیچیک از عملیاتهای ناهمگام شروعشده درحین رسیدگی به این رویداد تضمین نمیشود. اگر فعالیت بیشتری برای صفحه رویداد قبلاز بارگیری نشدن آن رخ دهد، رویداد onSuspendCanceled ارسال خواهد شد و صفحه بارگیری نخواهد شد.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:() => void
onSuspendCanceled
chrome.runtime.onSuspendCanceled.addListener(
callback: function,
)
پساز onSuspend ارسال میشود تا نشان دهد که برنامه درنهایت بارگیری نخواهد شد.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:() => void
onUpdateAvailable
chrome.runtime.onUpdateAvailable.addListener(
callback: function,
)
وقتی بهروزرسانی دردسترس باشد اما فوراً نصب نشود چون برنامه درحالحاضر درحال اجرا است، این رویداد فعال میشود. اگر کاری انجام ندهید، بهروزرسانی دفعه بعد که صفحه پسزمینه بارگیری نشود نصب خواهد شد، اگر میخواهید زودتر نصب شود میتوانید صریحاً chrome.runtime.reload() را فراخوانی کنید. اگر افزونه شما از صفحه پسزمینه دائمی استفاده میکند، البته صفحه پسزمینه هرگز بارگیری نمیشود، بنابراین تا زمانی که chrome.runtime.reload() را بهطور دستی در پاسخ به این رویداد فراخوانی نکنید، بهروزرسانی تا دفعه بعد که Chrome خودش بازراهاندازی شود نصب نخواهد شد. اگر هیچ گردانندهای به این رویداد گوش نمیدهد و افزونه شما یک صفحه پسزمینه دائمی دارد، طوری رفتار میکند که گویی chrome.runtime.reload() در پاسخ به این رویداد فراخوانی میشود.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:(details: object) => void
-
جزئیات
شیء
-
نسخه
رشته
شماره نسخه بهروزرسانی دردسترس.
-
-