الواجهة AppRegistry في ReactNative
ملاحظة: إذا كنت تستخدم
expo-cli
فلا يوجد سوى مكوّن إدخال واحد مسجل مسبقًا فيAppRegistry
ويُتعامل معه تلقائيًا، لذلك فلا حاجة لاستخدام واجهة برمجة التطبيقات (API) هذه.
تمثل الواجهة AppRegistry
نقطة دخول جافاسكربت لتشغيل جميع تطبيقات React Native. ويجب تسجيل جميع مكونات التطبيق الجذرية مع AppRegistry.registerComponent
، ومن ثم يتمكن النظام الأصلي من تحميل التطبيق وتشغيله عن طريق استدعاء الدالة AppRegistry.runApplication
.
import { Text, AppRegistry } from 'react-native';
const App = (props) => (
<View>
<Text>App1</Text>
</View>
);
AppRegistry.registerComponent('Appname', () => App);
لإيقاف التطبيق عند ازالة واجهة معيّنة View
، استدعي الدالة AppRegistry.unmountApplicationComponenetAtRootTag
على الوسم الذي مُرّرت سابقًا للدالة runApplication
.
يجب أن يكون AppRegistry
مطلوبًا في بداية سلسلة المطلوبات require
للتأكد من إعداد بيئة التنفيذ إعدادًا صحيحًا قبل أن تكون هناك حاجة لوحدات أخرى.
التوابع
cancelHeadlessTask()
static cancelHeadlessTask(taskId, taskKey)
تُستدعى من الشيفرة الأصلية، وتلغي تنفيذ عملية خلفية بلا واجهة (headless task).
المعامل taskId
هو المُعرِّف الخاص بالمهمة المُراد إلغاء تنفيذها (وهي المهمة التي بدأت عند استدعاء الدالة startHeadlessTask
، والمعامل taskKey
هو المفتاح الخاص بها.
المعاملات
الاسم | النوع | مطلوب |
---|---|---|
taskId
|
عدد (number) | نعم |
taskKey
|
سلسلة نصية (string) | نعم |
data
|
any | نعم |
enableArchitectureIndicator()
static enableArchitectureIndicator(enabled)
المعاملات
الاسم | النوع | مطلوب |
---|---|---|
enabled
|
قيمة منطقية (boolean) | نعم |
getAppKeys()
static getAppKeys()
تُرجع مصفوفة من AppKeys
.
getSectionKeys()
static getSectionKeys()
تُرجع مصفوفة من سلاسل نصية.
getSections()
static getSections()
تُرجع كائنًا من النوع Runnables
.
getRunnable()
static getRunnable(appKey)
تُرجع كائنًا من النوع Runnable
.
getRegistry()
static getRegistry()
تُرجع كائنًا من النوع Registry
(انظر تعريفات النوع في الأسفل).
registerCancellableHeadlessTask()
static registerCancellableHeadlessTask(taskKey, taskProvider, taskCancelProvider)
تسجل عملية في الخلفية بلا واجهة (تدعى headless task) قابلة للإلغاء، وتلك العملية هي شيفرة تُنفّد بدون واجهة مستخدِم، حيث يعد المعامل taskKey
المفتاح المرتبط بتلك العملية ويعد المعامل taskProvider
وعدًا (promise) يُرجع دالة تأخذ بيانات من الطرف الأصيل من الهاتف (native side) على أنه الوسيط الوحيد. وبعد أن يرفض الوعد أو يُحَل، يُرسل إشعار للجانب الأصيل وقد يقرر تدمير سياق جافاسكربت الحالي (JS context). أما المعامل taskCancelProvider
فهو دالة تُرجع دالة لا تأخذ معاملات، يغلفها taskProvider
ثم يعيدها مباشرةً عندما يُرسل طلب الإلغاء وذلك لتنفيذها.
المعاملات
الاسم | النوع | مطلوب |
---|---|---|
taskKey
|
سلسلة نصية (string) | نعم |
taskProvider
|
TaskProvider
|
نعم |
taskCancelProvider
|
TaskCancelProvider
|
نعم |
registerConfig()
static registerConfig([config])
المعاملات
الاسم | النوع | مطلوب |
---|---|---|
config
|
AppConfig
|
نعم |
registerComponent()
static registerComponent(appKey, componentProvider, section?)
المعاملات
الاسم | النوع | مطلوب |
---|---|---|
appKey
|
سلسلة نصية (string) | نعم |
componenetProvider
|
ComponentProvider
|
نعم |
section
|
قيمة منطقية (bool) | لا |
registerHeadlessTask()
static registerHeadlessTask(taskKey, taskProvider)
تسجل عملية في الخلفية بلا واجهة (تدعى headless task) هي شيفرة تُنفَّذ دون واجهة مستخدم. يعد المعامل taskKey
المفتاح المرتبط بتلك العملية، ويعد المعامل taskProvider
وعدًا (promise) يُرجع دالة تأخذ بيانات من الطرف الأصيل من الهاتف (native side) على أنه الوسيط الوحيد. وبعد أن يرفض الوعد أو يُحَل، يُرسل إشعار للجانب الأصيل وقد يقرر تدمير سياق جافاسكريبت الحالي (JS context).
تُستعمل هذه الدالة لتشغيل بعض المهام في التطبيق أثناء عمله في الخلفية، لمزامنة البيانات أو التعامل مع الإشعارات الفورية أو تشغيل الموسيقى مثلًا.
المعاملات
الاسم | النوع | مطلوب |
---|---|---|
taskKey
|
سلسلة نصية (string) | نعم |
taskProvider
|
TaskProvider
|
نعم |
registerRunnable()
static registerRunnable(appKey, run)
المعاملات:
الاسم | النوع | مطلوب |
---|---|---|
appKey
|
سلسلة نصية (string) | نعم |
run
|
دالة (function) | نعم |
registerSection()
static registerSection(appKey, component)
المعاملات:
الاسم | النوع | مطلوب |
---|---|---|
appKey
|
سلسلة نصية (string) | نعم |
component
|
ComponentProvider
|
نعم |
runApplication()
static runApplication(appKey, appParameters)
تُحمِّل حزمة تشغيل جافاسكربت للتطبيق ثم تشغِّله.
المعاملات
الاسم | النوع | مطلوب |
---|---|---|
appKey
|
سلسلة نصية (string) | نعم |
appParameters
|
any | نعم |
setComponentProviderInstrumentationHook()
static setComponentProviderInstrumentationHook(hook)
المعاملات:
الاسم | النوع | مطلوب |
---|---|---|
hook
|
دالة (function) | نعم |
يحتوي الخطاف hook
على المكونات التالية:
component
من النوعComponentProvider
(مطلوب).ScopedPerformanceLogger
من النوعIPerformanceLogger
(مطلوب).
تُرجع الدالة hook
مكوِّن React
.
setWrapperComponentProvider()
static setWrapperComponenetProvider(provider)
المعاملات
الاسم | النوع | مطلوب |
---|---|---|
provider
|
ComponentProvider
|
نعم |
startHeadlessTask()
static startHeadlessTask(taskId, taskKey, data)
تُستدعى من الشيفرة الأصلية (native code)، وتبدأ تنفيذ headless task
.
المعامل taskId
هو المُعرِّف الخاص بالمهمة المُراد بدؤها، والمعامل taskKey
هو المفتاح الخاص بها، أمّا المعامل data
فهو البيانات التي يجب إرسالها للمهمة المراد تنفيذها.
المعاملات:
الاسم | النوع | مطلوب |
---|---|---|
taskId
|
عدد (number) | نعم |
taskKey
|
سلسلة نصية (string) | نعم |
data
|
any | نعم |
unmountApplicationComponentAtRootTag()
static unmountApplicationComponentAtRootTag(rootTag)
توقِف التطبيق عند وجوب تدمير واجهة معينة.
المعاملات:
الاسم | النوع | مطلوب |
---|---|---|
rootTag
|
عدد (number) | نعم |
تعريفات الواجهة
AppConfig
كائنٌ يمثل ضبط التطبيق للتابع registerConfig
.
المفاتيح (الخاصيات) الصالحة للاستخدام مع الكائن AppConfig
:
الاسم | النوع | مطلوب |
---|---|---|
appKey
|
سلسلة نصية (string) | نعم |
component
|
ComponentProvider
|
لا |
run
|
دالة (function) | لا |
section
|
قيمة منطقية (bool) | لا |
ملاحظة: يُتوقع من كل كائن ضبط أن يحوي إما component
أو run
.
Registry
كائن والذي يحتوي على الخاصيات التالية:
الاسم | النوع |
---|---|
runnables
|
مصفوفة من النوع Runnables |
sections
|
مصفوفة من سلاسل نصية |
Runnable
كائن والذي يحتوي على الخاصيات التالية:
الاسم | النوع |
---|---|
component
|
النوع ComponentProvider
|
run
|
دالة |
Runnables
كائن يحتوي على مفتاح appKey
وقيمة من نوع Runnable
.
Task
الدالة Task
تأخذ بيانات وسيطة وتُرجع وعدًا Promise
يتم استيفاؤه (قبوله أو حله) على أنه undefined
.
TaskCanceller
الدالة TaskCanceller
لا تأخذ معاملات ولا ترجع شيئًا.
TaskCancelProvider
الدالة TaskCancelProvider
هي دالة صالحة ترجع الدالة TaskCanceller
.
TaskProvider
يعد TaskProvider
دالة تُرجع الدالة Task
.