الوصف
يمكنك استخدام واجهة برمجة التطبيقات chrome.runtime
لاسترداد مشغّل الخدمات وعرض تفاصيل ملف البيان والاستماع إلى الأحداث خلال دورة حياة الإضافة والاستجابة لها. يمكنك أيضًا استخدام واجهة برمجة التطبيقات هذه لتحويل المسار النسبي لعناوين URL إلى عناوين URL مؤهّلة بالكامل.
نظرة عامة
توفّر Runtime API طرقًا لتلبية عدد من مجالات الوظائف التي يمكن لإضافة استخدامها:
- تمرير الرسالة
- يمكن لإضافتك التواصل مع سياقات مختلفة داخل إضافتك ومع إضافات أخرى باستخدام هذه الطرق والأحداث: connect() و onConnect و onConnectExternal و sendMessage() و onMessage و onMessageExternal. بالإضافة إلى ذلك، يمكن لإضافة Chrome تمرير الرسائل إلى التطبيقات الأصلية على جهاز المستخدم باستخدام علامتَي الترميز connectNative() و sendNativeMessage().
- الوصول إلى البيانات الوصفية للإضافات والمنصات
- تتيح لك هذه الطرق استرداد عدة أجزاء محدّدة من البيانات الوصفية عن الإضافة والمنصة. ومن الطرق في هذه الفئة ما يلي: getManifest()، و getPlatformInfo().
- إدارة دورة حياة الإضافة وخياراتها
- تسمح لك هذه السمات بتنفيذ بعض العمليات الوصفية على الإضافة وعرض صفحة الخيارات. تشمل الطرق والأحداث في هذه الفئة ما يلي: onInstalled onStartup, openOptionsPage(), reload()، requestUpdateCheck()، و setUninstallURL().
- برامج الخدمات المساعِدة
- توفّر هذه الطرق أدوات مفيدة، مثل تحويل تمثيلات الموارد الداخلية إلى تنسيقات خارجية. ومن الطرق في هذه الفئة ما يلي: getURL().
- أدوات وضع Kiosk
- لا تتوفّر هذه الطرق إلا على نظام التشغيل ChromeOS، وهي مخصّصة بشكل أساسي لدعم عمليات تنفيذ تطبيقات نقاط البيع. تشمل الطرق في هذه الفئة restart و restartAfterDelay.
الأذونات
لا تتطلب معظم الطرق على واجهة برمجة تطبيقات وقت التشغيل أي إذن باستثناء
sendNativeMessage وconnectNative
يجب الحصول على إذن nativeMessaging
.
البيان
يوضّح المثال التالي كيفية تعريف إذن nativeMessaging
في ملف البيان:
manifest.json:
{
"name": "My extension",
...
"permissions": [
"nativeMessaging"
],
...
}
حالات الاستخدام
إضافة صورة إلى صفحة ويب
لتتمكّن صفحة ويب من الوصول إلى مادة عرض مستضافة على نطاق آخر، يجب تحديد عنوان URL الكامل للمورد.
(مثال: <img src="https://example.com/logo.png">
). وينطبق الأمر نفسه على تضمين مادة عرض الإضافة في
صفحة ويب. يتمثل الاختلافان في أنّ مواد عرض الإضافة يجب أن تكون موارد متاحة على الويب
وأنّ النصوص البرمجية للمحتوى هي المسؤولة عادةً عن إدخال
مواد عرض الإضافة.
في هذا المثال، ستضيف الإضافة logo.png
إلى الصفحة التي تتضمن المحتوى
يتم إدخال النص البرمجي باستخدام runtime.getURL()
لإنشاء
عنوان URL مؤهّل بالكامل. في المقابل، يجب أولاً الإعلان في البيان عن مادة العرض كمورد متاح للوصول إلى الويب.
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);
}
إرسال البيانات من الخدمة العاملة إلى نص محتوى
من الشائع أن تحتاج النصوص البرمجية لمحتوى الإضافة إلى بيانات يديرها جزء آخر من الإضافة، مثل مشغّل الخدمات. تمامًا مثل نافذتَي متصفّح تم فتحهما لعرض صفحة الويب نفسها، لا يمكن لهما الوصول مباشرةً إلى قيم بعضهما البعض. بدلاً من ذلك، يمكن أن تستخدم الإضافة message المرور للتنسيق عبر هذه السياقات المختلفة.
في هذا المثال، يحتاج نص المحتوى إلى بعض البيانات من الخدمة العاملة للإضافات لبدء واجهة المستخدم. للحصول على هذه البيانات، يتم تمرير رسالة 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');
}
});
أمثلة على الإضافات
يمكنك الاطّلاع على العرض التوضيحي للإصدار 3 من ملف البيان - موارد الوصول إلى الويب للتعرّف على أمثلة إضافية على واجهة برمجة التطبيقات لوقت التشغيل.
الأنواع
ContextFilter
فلتر لمطابقة سياقات إضافية معيّنة يجب أن تتطابق السياقات المطابقة مع جميع الفلاتر المحدّدة، ويتوافق أي فلتر غير محدّد مع جميع السياقات المتاحة. وبالتالي، سيتطابق فلتر "{}" مع جميع السياقات المتاحة.
أماكن إقامة
-
contextIds
string[] اختيارية
-
contextTypes
ContextType[] اختياري
-
documentIds
سلسلة اختيارية
-
documentOrigins
string[] اختيارية
-
documentUrls
string[] اختيارية
-
frameIds
number[] اختياري
-
وضع التصفّح المتخفي
منطقي اختياري
-
tabIds
number[] اختياري
-
windowIds
number[] اختياري
ContextType
التعداد
"TAB"
تحديد نوع السياق كعلامة تبويب
"POPUP"
تُحدِّد نوع السياق كنافذة منبثقة لمعلومات إضافية
"BACKGROUND"
يحدد نوع السياق كعامل خدمة.
"OFFSCREEN_DOCUMENT"
تُحدِّد نوع السياق كمستند خارج الشاشة.
"SIDE_PANEL"
تُحدِّد نوع السياق على أنّه لوحة جانبية.
"DEVELOPER_TOOLS"
يحدد نوع السياق على أنّه أدوات المطوّرين.
ExtensionContext
سياق محتوى إضافة يستضيف
أماكن إقامة
-
contextId
سلسلة
معرّف فريد لهذا السياق
-
contextType
نوع السياق الذي يتوافق معه هذا العنصر
-
documentId
سلسلة اختيارية
معرّف UUID للمستند المرتبط بهذا السياق، أو غير محدّد إذا لم يكن هذا السياق مستضافًا في مستند
-
documentOrigin
سلسلة اختيارية
مصدر المستند المرتبط بهذا السياق، أو غير محدّد إذا لم يكن السياق مستضافًا في مستند
-
documentUrl
سلسلة اختيارية
تمثّل هذه السمة عنوان URL للمستند المرتبط بهذا السياق، أو يكون غير محدّد إذا لم تتم استضافته في المستند.
-
frameId
الرقم
رقم تعريف الإطار لهذا السياق، أو -1 إذا لم يكن هذا السياق مستضافًا في إطار.
-
وضع التصفُّح المتخفي
منطقي
ما إذا كان السياق مرتبطًا بملف شخصي في وضع التصفّح المتخفي
-
tabId
الرقم
رقم تعريف علامة التبويب لهذا السياق، أو -1 إذا لم تتم استضافة هذا السياق في علامة تبويب.
-
windowId
الرقم
رقم تعريف النافذة لهذا السياق، أو -1 إذا لم يكن هذا السياق مستضافًا في نافذة
MessageSender
كائن يحتوي على معلومات عن سياق النص البرمجي الذي أرسل رسالة أو طلبًا
أماكن إقامة
-
documentId
سلسلة اختيارية
الإصدار 106 من Chrome أو الإصدارات الأحدثمعرّف UUID للمستند الذي فتح الاتصال
-
documentLifecycle
سلسلة اختيارية
الإصدار 106 من Chrome والإصدارات الأحدثدورة الحياة التي كان عليها المستند الذي فتح الاتصال في وقت إنشاء المنفذ يُرجى ملاحظة أنّ حالة دورة حياة المستند قد تغيّرت منذ إنشاء المنفذ.
-
frameId
الرقم اختياري
الإطار الذي فتح الاتصال 0 للإطارات من المستوى الأعلى، وقيمة موجبة للإطارات الفرعية. لن يتم ضبط هذا الإعداد إلا عند ضبط
tab
. -
id
سلسلة اختيارية
رقم تعريف الإضافة التي فتحت الاتصال، إن توفّرت.
-
nativeApplication
سلسلة اختيارية
Chrome 74 والإصدارات الأحدثاسم التطبيق الأصلي الذي فتح الاتصال، إن توفّر
-
الأصل
سلسلة اختيارية
الإصدار 80 من Chrome والإصدارات الأحدثأصل الصفحة أو الإطار الذي فتح الاتصال. ويمكن أن يختلف عن خاصية عنوان URL (على سبيل المثال، about:blank) أو قد يكون مبهمًا (على سبيل المثال، إطارات iframe في وضع الحماية). ويُعدّ ذلك مفيدًا لتحديد ما إذا كان المصدر موثوقًا به أم لا إذا لم نتمكّن من معرفة ذلك على الفور من عنوان URL.
-
tab
علامة تبويب اختيارية
tabs.Tab
الذي فتح الاتصال، إن توفّر لن يظهر هذا السمة إلا عند فتح الاتصال من علامة تبويب (بما في ذلك نصوص برمجة المحتوى)، وفقط إذا كان المستلِم إضافة وليس تطبيقًا. -
tlsChannelId
سلسلة اختيارية
معرّف قناة بروتوكول أمان طبقة النقل (TLS) للصفحة أو الإطار الذي فتح الاتصال، إذا طلبت الإضافة ذلك، وإذا كان متاحًا.
-
url
سلسلة اختيارية
عنوان URL للصفحة أو الإطار الذي فتح الاتصال. وإذا كان المرسل في إطار iframe، سيكون عنوان URL لإطار iframe وليس عنوان URL للصفحة التي تستضيفه.
OnInstalledReason
سبب إرسال هذا الحدث.
Enum
"install"
تُحدِّد سبب الحدث على أنّه عملية تثبيت.
"update"
تُحدِّد سبب الحدث على أنّه تحديث إضافة.
"chrome_update"
تُحدِّد سبب الحدث على أنّه تحديث Chrome.
"shared_module_update"
يُحدِّد سبب الحدث كتعديل على وحدة مشتركة.
OnRestartRequiredReason
سبب إرسال الحدث "app_update" عند الحاجة إلى إعادة التشغيل نظرًا لتحديث التطبيق إلى إصدار أحدث. 'os_update' عند الحاجة إلى إعادة التشغيل لأنه قد تم تحديث المتصفح/نظام التشغيل إلى إصدار أحدث. 'دورية' يتم استخدام عندما يعمل النظام لمدة تتجاوز مدة التشغيل المسموح بها المحددة في سياسة المؤسسة.
التعداد
"app_update"
يحدد سبب الحدث على أنّه تحديث للتطبيق.
"os_update"
تحديد سبب الحدث كتحديث لنظام التشغيل.
"periodic"
يُحدِّد سبب الحدث على أنّه إعادة تشغيل التطبيق بشكل دوري.
PlatformArch
بنية المعالج في الجهاز
التعداد
"arm"
تُحدِّد بنية المعالج على أنّها arm.
"arm64"
يتم تحديد بنية معالج البيانات على هيئة Arm64.
"x86-32"
يحدد هذا العمود بنية معالج البيانات على النحو التالي: x86-32.
"x86-64"
تُحدِّد بنية المعالج على أنّها x86-64.
"mips"
تُحدِّد بنية المعالج على أنّها mips.
"mips64"
تُحدِّد بنية المعالج على أنّها mips64.
PlatformInfo
عنصر يحتوي على معلومات عن النظام الأساسي الحالي
أماكن إقامة
-
قوس
بنية المعالج في الجهاز
-
nacl_arch
بنية العميل الأصلي. قد يختلف هذا الخيار عن القوس على بعض الأنظمة الأساسية.
-
os
نظام التشغيل الذي يعمل عليه Chrome
PlatformNaclArch
بنية العميل الأصلي. قد يختلف هذا الخيار عن القوس على بعض الأنظمة الأساسية.
Enum
"الذراع"
يحدد هذا الخيار بنية العميل الأصلي كمجموعة تجربة.
"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.
"fuchsia"
تحديد نظام التشغيل Fuchsia.
Port
كائن يتيح التواصل ثنائي الاتجاه مع الصفحات الأخرى. راجِع الاتصالات طويلة الأمد للحصول على مزيد من المعلومات.
أماكن إقامة
-
الاسم
سلسلة
اسم المنفذ، كما هو محدّد في طلب
runtime.connect
. -
onDisconnect
الحدث <functionmutuff>
يتم تشغيله عند انقطاع اتصال المنفذ بالطرف الآخر. قد يتم ضبط
runtime.lastError
إذا انقطع اتصال المنفذ عن طريق خطأ. إذا تم إغلاق المنفذ من خلال قطع الاتصال، يتم تنشيط هذا الحدث فقط على الطرف الآخر. يتم تشغيل هذا الحدث مرة واحدة بحد أقصى (راجِع أيضًا مدة صلاحية المنفذ).تبدو الدالة
onDisconnect.addListener
على النحو التالي:(callback: function) => {...}
-
onMessage
الحدث<functionvoidvoid>
يتم تنشيط هذا الحدث عند استدعاء postMessage من قِبل الطرف الآخر للمنفذ.
تبدو الدالة
onMessage.addListener
على النحو التالي:(callback: function) => {...}
-
المُرسِل
MessageSender اختياري
ستكون هذه السمة متوفّرة فقط في المنافذ التي يتم ضبطها على المنافذ التي يتم ضبطها على onConnect / onConnectExternal / onConnectNative.
-
إلغاء الربط
فراغ
افصل المنفذ على الفور. وما مِن تأثير للاتصال بالرقم
disconnect()
من خلال منفذ غير متّصل. عند قطع اتصال المنفذ، لن يتم إرسال أحداث جديدة إلى هذا المنفذ.تبدو الدالة
disconnect
على النحو التالي:() => {...}
-
postMessage
فراغ
أرسِل رسالة إلى الطرف الآخر من المنفذ. إذا انقطع الاتصال بالمنفذ، يتم طرح خطأ.
تبدو الدالة
postMessage
على النحو التالي:(message: any) => {...}
-
رسالة
أي واحد
Chrome 52 والإصدارات الأحدثالرسالة المطلوب إرسالها. يجب أن يكون هذا العنصر قابلاً للتحويل إلى ملف JSON.
-
RequestUpdateCheckStatus
نتيجة التحقّق من التحديث
التعداد
"throttled"
يحدد هذا الخيار أنه تم تقييد عملية التحقق من الحالة. يمكن أن يحدث هذا الأمر بعد عمليات التحقّق المتكرّرة خلال فترة زمنية قصيرة.
"no_update"
تشير إلى عدم توفّر تحديثات متوفّرة لتثبيتها.
"update_available"
يشير إلى توفّر تحديث لتثبيته.
أماكن إقامة
id
رقم تعريف الإضافة/التطبيق.
النوع
سلسلة
lastError
يتمّ تعبئتها برسالة خطأ في حال تعذّر استدعاء دالة واجهة برمجة التطبيقات، وتكون غير محدّدة بخلاف ذلك. ولا يتم تحديد ذلك إلا في نطاق دالة ردّ الاتصال هذه. إذا حدث خطأ، ولكن لم يتم الوصول إلى runtime.lastError
ضمن دالة الاستدعاء، يتم تسجيل رسالة في وحدة التحكّم تسرد دالة واجهة برمجة التطبيقات التي أدّت إلى الخطأ. لا تضبط دوال واجهة برمجة التطبيقات التي تعرض وعدًا هذه السمة.
النوع
كائن
أماكن إقامة
-
رسالة
سلسلة اختيارية
تفاصيل عن الخطأ الذي حدث
الطُرق
connect()
chrome.runtime.connect(
extensionId?: string,
connectInfo?: object,
)
محاولات التواصل مع المستمعين ضمن إضافة (مثل صفحة الخلفية) أو إضافات/تطبيقات أخرى ويُعدّ ذلك مفيدًا لنصوص الترميز البرمجي للمحتوى التي ترتبط بعمليات الإضافة والتواصل بين التطبيقات أو الإضافات ومراسلة الويب. يُرجى العلم أنّ هذا الإجراء لا يرتبط بأي مستمعين في نص محتوى. يمكن أن ترتبط الإضافات بالنصوص البرمجية للمحتوى المضمّنة في علامات التبويب من خلال tabs.connect
.
المعلمات
-
extensionId
سلسلة اختيارية
رقم تعريف الإضافة المطلوب الربط بها في حال حذفه، ستتم محاولة إجراء عملية ربط باستخدام إضافتك الخاصة. مطلوب في حال إرسال رسائل من صفحة ويب لاستخدام ميزة المراسلة على الويب.
-
connectInfo
العنصر اختياري
-
includeTlsChannelId
قيمة منطقية اختيارية
ما إذا كان سيتم تمرير معرّف قناة TLS إلى onConnectExternal للعمليات التي تستمع إلى حدث الاتصال
-
الاسم
سلسلة اختيارية
سيتم تمريرها إلى onConnect للعمليات التي تستمع إلى حدث الاتصال.
-
المرتجعات
-
المنفذ الذي يمكن إرسال الرسائل واستلامها من خلاله. يتم تشغيل الحدث onDisconnect للمنفذ إذا لم تكن الإضافة متوفّرة.
connectNative()
chrome.runtime.connectNative(
application: string,
)
يتصل بتطبيق أصلي في الجهاز المضيف. تتطلّب هذه الطريقة إذن "nativeMessaging"
. يُرجى الاطّلاع على المراسلة الأصلية للحصول على مزيد من المعلومات.
المعلمات
-
التطبيق
سلسلة
اسم التطبيق المسجّل المطلوب الاتصال به.
المرتجعات
-
المنفذ الذي يمكن من خلاله إرسال الرسائل واستلامها باستخدام التطبيق
getBackgroundPage()
chrome.runtime.getBackgroundPage(
callback?: function,
)
يسترجع عنصر JavaScript "window" للصفحة التي تعمل في الخلفية داخل التطبيق أو الإضافة الحالية. إذا كانت الصفحة التي تعمل في الخلفية هي صفحة حدث، سيحرص النظام على تحميلها قبل استدعاء دالة الاستدعاء. إذا لم تكن هناك صفحة خلفية، يتم ضبط خطأ.
المعلمات
-
رد الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:(backgroundPage?: Window) => void
-
backgroundPage
النافذة اختيارية
"نافذة" JavaScript لصفحة الخلفية.
-
المرتجعات
-
Promise<Window | undefined>
Chrome 99 والإصدارات الأحدثلا تتوفّر الوعود إلا مع الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج الأنظمة الأساسية الأخرى إلى استخدام عمليات معاودة الاتصال.
getContexts()
chrome.runtime.getContexts(
filter: ContextFilter,
callback?: function,
)
يسترجع معلومات حول السياقات النشطة المرتبطة بهذه الإضافة.
المعلمات
-
تصفية
فلتر للعثور على السياقات المطابقة يتطابق السياق إذا كان يتطابق مع جميع الحقول المحدّدة في الفلتر. ويتطابق أي حقل غير محدَّد في الفلتر مع جميع السياقات.
-
رد الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:(contexts: ExtensionContext[]) => void
-
السياقات
السياقات المطابِقة، إن وجدت
-
المرتجعات
-
Promise<ExtensionContext[]>
لا تتوفّر الوعود إلا مع الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج الأنظمة الأساسية الأخرى إلى استخدام عمليات معاودة الاتصال.
getManifest()
chrome.runtime.getManifest()
يعرض هذا الإجراء تفاصيل حول التطبيق أو الإضافة من البيان. الكائن الذي يتم إرجاعه هو تسلسل ملف البيان الكامل.
المرتجعات
-
كائن
تفاصيل البيان
getPackageDirectoryEntry()
chrome.runtime.getPackageDirectoryEntry(
callback?: function,
)
عرض عنصر DirectoryEntry لدليل الحزمة
المعلمات
-
رد الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:(directoryEntry: DirectoryEntry) => void
-
directoryEntry
DirectoryEntry
-
المرتجعات
-
Promise<DirectoryEntry>
الإصدار 122 من Chrome أو الإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، ويجب أن تستخدم المنصات الأخرى طلبات الاستدعاء.
getPlatformInfo()
chrome.runtime.getPlatformInfo(
callback?: function,
)
لعرض معلومات عن المنصة الحالية.
المعلمات
-
رد الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:(platformInfo: PlatformInfo) => void
-
platformInfo
-
المرتجعات
-
Promise<PlatformInfo>
Chrome 99 والإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، ويجب أن تستخدم المنصات الأخرى طلبات الاستدعاء.
getURL()
chrome.runtime.getURL(
path: string,
)
تحوِّل هذه الدالة مسارًا نسبيًا ضمن دليل تثبيت التطبيق/الإضافة إلى عنوان URL مؤهَّل بالكامل.
المعلمات
-
المسار
سلسلة
مسار إلى مورد داخل تطبيق/إضافة معبر عنه بالنسبة إلى دليل التثبيت الخاص به.
المرتجعات
-
سلسلة
عنوان URL المؤهّل بالكامل للمورد.
openOptionsPage()
chrome.runtime.openOptionsPage(
callback?: function,
)
افتح صفحة خيارات الإضافة، إن أمكن.
وقد يعتمد السلوك الدقيق على مفتاح [options_ui](https://developer.chrome.com/docs/extensions/develop/ui/options-page#embedded_options)
أو [options_page](https://developer.chrome.com/docs/extensions/develop/ui/options-page#full_page)
في ملف البيان أو ما يحدث لدعم Chrome في ذلك الوقت. على سبيل المثال، قد يتم فتح الصفحة في علامة تبويب جديدة، ضمن chrome://extensions أو داخل تطبيق، أو قد تركِّز فقط على صفحة خيارات مفتوحة. ولن يؤدي ذلك مطلقًا إلى إعادة تحميل صفحة المتصل.
إذا لم توضِّح إضافتك صفحة خيارات أو تعذّر على Chrome إنشاء صفحة لسبب آخر، سيتم ضبط lastError
لعملية معاودة الاتصال.
المعلمات
-
رد الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:() => void
المرتجعات
-
Promise<void>
الإصدار 99 من Chrome أو الإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، ويجب أن تستخدم المنصات الأخرى طلبات الاستدعاء.
reload()
chrome.runtime.reload()
تؤدي هذه العملية إلى إعادة تحميل التطبيق أو الإضافة. هذه الطريقة غير متاحة في وضع Kiosk. في وضع Kiosk، استخدِم الطريقة chrome.runtime.restart() .
requestUpdateCheck()
chrome.runtime.requestUpdateCheck(
callback?: function,
)
تطلب إجراء فحص التحديث الفوري لهذا التطبيق/الإضافة.
ملاحظة مُهمّة: يجب ألا تستخدم معظم الإضافات أو التطبيقات هذه الطريقة، لأنّ Chrome يُجري عمليات تحقّق تلقائية كل بضع ساعات، ويمكنك معالجة حدث runtime.onUpdateAvailable
بدون الحاجة إلى استدعاء requestUpdateCheck.
لا تكون هذه الطريقة مناسبة إلا للاتصال في حالات محدودة جدًا، مثل إذا كانت الإضافة تتواصل مع خدمة خلفية، وتبيّن لخدمة الخلفية أنّ إصدار إضافة العميل قديم جدًا وأنّك تريد مطالبة المستخدم بالتحديث. فمعظم الاستخدامات الأخرى لـ requestUpdateCheck، مثل استدعائه بدون شرط بناءً على موقّت متكرر، من المحتمل أن يؤدي فقط إلى إهدار موارد العميل والشبكة والخادم.
ملاحظة: عند استدعاء هذه الدالة مع دالة ردّ اتصال، بدلاً من عرض عنصر، ستعرض الدالة السمتَين كوسيطات منفصلة يتم تمريرها إلى دالة ردّ الاتصال.
المعلمات
-
رد الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:(result: object) => void
-
نتيجة
كائن
Chrome 109 والإصدارات الأحدثعنصر RequestUpdateCheckResult الذي يحتوي على حالة التحقّق من التحديث وأي تفاصيل عن النتيجة في حال توفّر تحديث
-
status
نتيجة التحقّق من التحديث
-
إصدار
سلسلة اختيارية
في حال توفُّر تحديث، يعني هذا أنه يتضمّن إصدار التحديث المتاح.
-
-
المرتجعات
-
وعد <object>
الإصدار 109 من Chrome أو الإصدارات الأحدثلا تتوفّر الوعود إلا مع الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج الأنظمة الأساسية الأخرى إلى استخدام عمليات معاودة الاتصال.
restart()
chrome.runtime.restart()
أعِد تشغيل جهاز ChromeOS عندما يعمل التطبيق في وضع Kiosk. وإلا، فهو لا يعمل.
restartAfterDelay()
chrome.runtime.restartAfterDelay(
seconds: number,
callback?: function,
)
أعِد تشغيل جهاز ChromeOS عند تشغيل التطبيق في وضع Kiosk بعد الثواني المحدّدة. وإذا تم طلب إعادة الجهاز قبل انتهاء الوقت، ستتأخر إعادة التشغيل. إذا تم طلب العملية بقيمة -1، سيتم إلغاء إعادة التشغيل. إنه أمر محظور في وضع عدم استخدام وضع Kiosk. ولا يُسمح إلا للإضافة الأولى باستدعاء هذه الواجهة بشكل متكرّر.
المعلمات
-
ثانية
الرقم
الوقت الذي يجب الانتظار خلاله بالثواني قبل إعادة تشغيل الجهاز، أو -1 لإلغاء عملية إعادة تشغيل مجدوَلة.
-
رد الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:() => void
المرتجعات
-
Promise<void>
Chrome 99 والإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، ويجب أن تستخدم المنصات الأخرى طلبات الاستدعاء.
sendMessage()
chrome.runtime.sendMessage(
extensionId?: string,
message: any,
options?: object,
callback?: function,
)
تُرسِل رسالة واحدة إلى مستمعي الأحداث في إضافتك أو إضافة/تطبيق مختلفَين. وهي مشابهة لـ runtime.connect
، ولكنّها تُرسِل رسالة واحدة فقط مع استجابة اختيارية. وفي حال الإرسال إلى إضافتك، سيتم تنشيط الحدث runtime.onMessage
في كل إطار من إضافتك (باستثناء إطار المُرسِل) أو runtime.onMessageExternal
في حال إضافة إضافة مختلفة. يُرجى العلم أنّ الإضافات لا يمكنها إرسال رسائل إلى النصوص البرمجية للمحتوى باستخدام هذه الطريقة. لإرسال رسائل إلى النصوص البرمجية للمحتوى، استخدِم tabs.sendMessage
.
المعلمات
-
extensionId
سلسلة اختيارية
رقم تعريف الإضافة المطلوب إرسال الرسالة إليها. في حال حذف هذا الحقل، سيتم إرسال الرسالة إلى إضافتك أو تطبيقك. هذا الحقل مطلوب في حال إرسال رسائل من صفحة ويب للمراسلة على الويب.
-
رسالة
أي واحد
الرسالة المطلوب إرسالها. يجب أن تكون هذه الرسالة عنصرًا قابلاً للتحويل إلى تنسيق JSON.
-
الخيارات
العنصر اختياري
-
includeTlsChannelId
قيمة منطقية اختيارية
ما إذا كان سيتم تمرير معرّف قناة بروتوكول أمان طبقة النقل (TLS) إلى onMessageExternal للعمليات التي تستمع إلى حدث الاتصال
-
-
ردّ الاتصال
الدالة اختيارية
Chrome 99 والإصدارات الأحدثتظهر المَعلمة
callback
على النحو التالي:(response: any) => void
-
رد
أي واحد
عنصر استجابة JSON الذي أرسله معالِج الرسالة إذا حدث خطأ أثناء الاتصال بالإضافة، سيتمّ استدعاء دالة الاستدعاء بدون وسيطات، وسيتمّ ضبط
runtime.lastError
على رسالة الخطأ.
-
المرتجعات
-
Promise<any>
الإصدار 99 من Chrome أو الإصدارات الأحدثلا تتوفّر الوعود إلا مع الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج الأنظمة الأساسية الأخرى إلى استخدام عمليات معاودة الاتصال.
sendNativeMessage()
chrome.runtime.sendNativeMessage(
application: string,
message: object,
callback?: function,
)
إرسال رسالة واحدة إلى تطبيق محلي تتطلّب هذه الطريقة إذن "nativeMessaging"
.
المعلمات
-
التطبيق
سلسلة
اسم مضيف المراسلة مع التطبيقات الأصلية.
-
رسالة
كائن
الرسالة التي سيتم تمريرها إلى مضيف المراسلة مع التطبيقات الأصلية.
-
ردّ الاتصال
الدالة اختيارية
الإصدار 99 من Chrome أو الإصدارات الأحدثتظهر المَعلمة
callback
على النحو التالي:(response: any) => void
-
رد
أي واحد
رسالة الردّ التي أرسلها مضيف المراسلة مع التطبيقات الأصلية وإذا حدث خطأ أثناء الاتصال بمضيف المراسلة مع التطبيقات الأصلية، سيتم طلب معاودة الاتصال بدون وسيطات، وسيتم ضبط
runtime.lastError
على رسالة الخطأ.
-
المرتجعات
-
Promise<any>
Chrome 99 والإصدارات الأحدثلا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، ويجب أن تستخدم المنصات الأخرى طلبات الاستدعاء.
setUninstallURL()
chrome.runtime.setUninstallURL(
url: string,
callback?: function,
)
تُستخدَم لضبط عنوان URL الذي سيتم الانتقال إليه عند إلغاء التثبيت. ويمكن استخدامها لتنظيف البيانات من جهة الخادم وإجراء الإحصاءات وتنفيذ الاستطلاعات. 1023 حرفًا كحدّ أقصى
المعلمات
-
url
سلسلة
سيتم فتحه بعد إلغاء تثبيت الإضافة. يجب أن يتضمّن عنوان URL هذا مخطّط http: أو https:. اضبط سلسلة فارغة لعدم فتح علامة تبويب جديدة عند إلغاء التثبيت.
-
ردّ الاتصال
الدالة اختيارية
الإصدار 45 من Chrome والإصدارات الأحدثتظهر المَعلمة
callback
على النحو التالي:() => void
المرتجعات
-
Promise<void>
Chrome 99 والإصدارات الأحدثلا تتوفّر الوعود إلا مع الإصدار Manifest V3 والإصدارات الأحدث، وتحتاج الأنظمة الأساسية الأخرى إلى استخدام عمليات معاودة الاتصال.
الفعاليات
onBrowserUpdateAvailable
chrome.runtime.onBrowserUpdateAvailable.addListener(
callback: function,
)
يُرجى استخدام runtime.onRestartRequired
.
يتم تشغيله عندما يتوفّر تحديث Chrome، ولكن لا يتم تثبيته على الفور لأنّه يجب إعادة تشغيل المتصفّح.
المعلمات
-
ردّ الاتصال
دالة
تظهر المَعلمة
callback
على النحو التالي:() => void
onConnect
chrome.runtime.onConnect.addListener(
callback: function,
)
يتم الإطلاق عند إجراء اتصال من خلال عملية إضافة أو نص برمجي للمحتوى (من قِبل runtime.connect
).
المعلمات
-
ردّ الاتصال
دالة
تظهر المَعلمة
callback
على النحو التالي:(port: Port) => void
-
المنفذ
-
onConnectExternal
chrome.runtime.onConnectExternal.addListener(
callback: function,
)
يتم الإطلاق عند إجراء اتصال من إضافة أخرى (بواسطة runtime.connect
) أو من موقع إلكتروني يمكن الاتصال خارجيًا فيه.
المعلمات
-
ردّ الاتصال
دالة
تظهر المَعلمة
callback
على النحو التالي:(port: Port) => void
-
المنفذ
-
onConnectNative
chrome.runtime.onConnectNative.addListener(
callback: function,
)
يتم تشغيله عند إجراء عملية ربط من تطبيق أصلي. يتطلب هذا الحدث الحصول على إذن "nativeMessaging"
. لا تتوفّر هذه الميزة إلا على نظام التشغيل ChromeOS.
المعلمات
-
ردّ الاتصال
دالة
تظهر المَعلمة
callback
على النحو التالي:(port: Port) => void
-
المنفذ
-
onInstalled
chrome.runtime.onInstalled.addListener(
callback: function,
)
يتم الإطلاق عند تثبيت الإضافة لأول مرة وعند تحديثها إلى إصدار جديد وعند تحديث Chrome إلى إصدار جديد.
المعلمات
-
ردّ الاتصال
دالة
تظهر المَعلمة
callback
على النحو التالي:(details: object) => void
-
التفاصيل
كائن
-
id
سلسلة اختيارية
يشير إلى رقم تعريف إضافة الوحدة المشترَكة التي تمّ تعديلها. لا يتوفّر ذلك إلا إذا كان "السبب" هي "shared_module_update".
-
previousVersion
سلسلة اختيارية
يشير إلى الإصدار السابق من الإضافة الذي تم تعديله للتو. لا يتوفّر ذلك إلا إذا كان "السبب" هي 'update'.
-
السبب
سبب إرسال هذا الحدث.
-
-
onMessage
chrome.runtime.onMessage.addListener(
callback: function,
)
يتم الإطلاق عند إرسال رسالة إما من عملية إضافة (من قِبل runtime.sendMessage
) أو من نص برمجي للمحتوى (من قِبل tabs.sendMessage
).
المعلمات
-
ردّ الاتصال
دالة
تظهر المَعلمة
callback
على النحو التالي:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
-
رسالة
أي واحد
-
المُرسِل
-
sendResponse
دالة
تظهر المَعلمة
sendResponse
على النحو التالي:() => void
-
returns
منطقي | غير محدّد
-
onMessageExternal
chrome.runtime.onMessageExternal.addListener(
callback: function,
)
يتم تشغيله عند إرسال رسالة من إضافة أخرى (باستخدام runtime.sendMessage
). لا يمكن استخدامه في نص برمجي للمحتوى.
المعلمات
-
ردّ الاتصال
دالة
تظهر المَعلمة
callback
على النحو التالي:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
-
رسالة
أي واحد
-
المُرسِل
-
sendResponse
دالة
تظهر المَعلمة
sendResponse
على النحو التالي:() => void
-
returns
منطقي | غير محدّد
-
onRestartRequired
chrome.runtime.onRestartRequired.addListener(
callback: function,
)
يتم تنشيطه عندما يتعيّن إعادة تشغيل التطبيق أو الجهاز الذي يعمل عليه. يجب أن يغلق التطبيق جميع نوافذه في أقرب وقت مناسب للسماح بإعادة التشغيل. في حال عدم اتخاذ أي إجراء من جانب التطبيق، سيتم فرض إعادة التشغيل بعد انقضاء فترة سماح مدتها 24 ساعة. وفي الوقت الحالي، يتم تنشيط هذا الحدث لتطبيقات Kiosk لنظام التشغيل ChromeOS فقط.
المعلمات
-
ردّ الاتصال
دالة
تظهر المَعلمة
callback
على النحو التالي:(reason: OnRestartRequiredReason) => void
-
السبب
-
onStartup
chrome.runtime.onStartup.addListener(
callback: function,
)
يتم تشغيله عند بدء تشغيل ملف شخصي تم تثبيت هذه الإضافة عليه لأول مرة. لا يتم تشغيل هذا الحدث عند بدء ملف شخصي في وضع التصفّح المتخفي، حتى إذا كانت هذه الإضافة تعمل في وضع التصفّح المتخفي "المقسّم".
المعلمات
-
ردّ الاتصال
دالة
تظهر المَعلمة
callback
على النحو التالي:() => void
onSuspend
chrome.runtime.onSuspend.addListener(
callback: function,
)
يتم إرساله إلى صفحة الحدث قبل إلغاء تحميله مباشرةً. يمنح ذلك الإضافة فرصة للحذف. تجدر الإشارة إلى أنّه بما أنّه يتم إلغاء تحميل الصفحة، لا يمكن ضمان اكتمال أي عمليات غير متزامنة أثناء معالجة هذا الحدث. وفي حال حدوث المزيد من الأنشطة لصفحة الحدث قبل إلغاء تحميلها، سيتم إرسال حدث onCommenteded ولن يتم إلغاء تحميل الصفحة.
المعلمات
-
ردّ الاتصال
دالة
تظهر المَعلمة
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
-
التفاصيل
كائن
-
إصدار
سلسلة
تمثّل هذه السمة رقم إصدار التحديث المتاح.
-
-
onUserScriptConnect
chrome.runtime.onUserScriptConnect.addListener(
callback: function,
)
يتم تشغيله عند إجراء اتصال من نص برمجي للمستخدم من هذه الإضافة.
المعلمات
-
ردّ الاتصال
دالة
تظهر المَعلمة
callback
على النحو التالي:(port: Port) => void
-
المنفذ
-
onUserScriptMessage
chrome.runtime.onUserScriptMessage.addListener(
callback: function,
)
يتم تشغيله عند إرسال رسالة من نص برمجي للمستخدِم مرتبط بالإجراء الإضافي نفسه.
المعلمات
-
ردّ الاتصال
دالة
تظهر المَعلمة
callback
على النحو التالي:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
-
رسالة
أي واحد
-
المُرسِل
-
sendResponse
دالة
تظهر المَعلمة
sendResponse
على النحو التالي:() => void
-
returns
boolean | غير محدّدة
-