الفرق بين المراجعتين لصفحة: «ReactNative/appregistry»

من موسوعة حسوب
رفع المحتوى
 
ط مراجعة
سطر 2: سطر 2:
'''ملاحظة''': إذا كنت تستخدم <code>expo-cli</code> فلا يوجد سوى مكون إدخال واحد مسجل مسبقًا في <code>AppRegistry</code> ويتم التعامل معه تلقائيًا، لذلك لا حاجة لاستخدام واجهة برمجة التطبيقات (API) هذه.
'''ملاحظة''': إذا كنت تستخدم <code>expo-cli</code> فلا يوجد سوى مكون إدخال واحد مسجل مسبقًا في <code>AppRegistry</code> ويتم التعامل معه تلقائيًا، لذلك لا حاجة لاستخدام واجهة برمجة التطبيقات (API) هذه.


 
يُمثل <code>AppRegistry</code> نقطة دخول جافا سكريبت لتشغيل جميع تطبيقات React Native. ويجب تسجيل جميع مكونات التطبيق الجذرية مع <code>AppRegistry.registerComponent</code>، ومن ثم يتمكن النظام الأصلي من تحميل التطبيق وتشغيله عن طريق استدعاء الدالة <code>AppRegistry.runApplication</code>.<syntaxhighlight class="react" lang="javascript">import { Text, AppRegistry } from 'react-native';
يُمثل <code>AppRegistry</code> نقطة دخول جافا سكريبت لتشغيل جميع تطبيقات React Native. ويجب تسجيل جميع مكونات التطبيق الجذرية مع <code>AppRegistry.registerComponent</code>، ومن ثم يتمكن النظام الأصلي من تحميل التطبيق وتشغيله عن طريق استدعاء الدالة <code>AppRegistry.runApplication</code>.
 
 
 
<syntaxhighlight class="react">import { Text, AppRegistry } from 'react-native';


const App = (props) => (
const App = (props) => (
سطر 17: سطر 12:
AppRegistry.registerComponent('Appname', () => App);</syntaxhighlight>
AppRegistry.registerComponent('Appname', () => App);</syntaxhighlight>


 
لإيقاف التطبيق عند ازالة واجهة معينة (<code>[[ReactNative/view|View]]</code>)، استدع الدالة <code>AppRegistry.unmountApplicationComponenetAtRootTag</code> على الوسم الذي تم تمريره سابقًا للدالة <code>runApplication</code>.
لإيقاف التطبيق عند ازالة شاشة معينة (View)، استدع الدالة <code>AppRegistry.unmountApplicationComponenetAtRootTag</code> على الوسم الذي تم تمريره سابقًا للدالة <code>runApplication</code>.


يجب أن يكون <code>AppRegistry</code> مطلوبًا في بداية سلسلة المطلوبات للتأكد من إعداد بيئة التنفيذ بشكل صحيح قبل أن تكون هناك حاجة لوحدات أخرى.
يجب أن يكون <code>AppRegistry</code> مطلوبًا في بداية سلسلة المطلوبات للتأكد من إعداد بيئة التنفيذ بشكل صحيح قبل أن تكون هناك حاجة لوحدات أخرى.
سطر 28: سطر 22:
=== <code>setWrapperComponentProvider</code> ===
=== <code>setWrapperComponentProvider</code> ===


<syntaxhighlight class="react">static setWrapperComponenetProvider(provider)</syntaxhighlight>
<syntaxhighlight class="react" lang="javascript">static setWrapperComponenetProvider(provider)</syntaxhighlight>
'''المعاملات'''
'''المعاملات'''


سطر 36: سطر 30:
! مطلوب
! مطلوب
|-
|-
| provider
| <code>provider</code>
| ComponentProvider
| ComponentProvider
| نعم
| نعم
سطر 43: سطر 37:
=== <code>enableArchitectureIndicator</code> ===
=== <code>enableArchitectureIndicator</code> ===


<syntaxhighlight class="react">static enableArchitectureIndicator(enabled)</syntaxhighlight>
<syntaxhighlight class="react" lang="javascript">static enableArchitectureIndicator(enabled)</syntaxhighlight>
'''المعاملات'''
'''المعاملات'''


سطر 51: سطر 45:
! مطلوب
! مطلوب
|-
|-
| enabled
| <code>enabled</code>
| قيمة منطقية (boolean)
| قيمة منطقية (boolean)
| نعم
| نعم
|}
|}
=== <code>registerConfig</code> ===
=== <code>registerConfig</code> ===


<syntaxhighlight class="react">static registerConfig([config])</syntaxhighlight>
<syntaxhighlight class="react" lang="javascript">static registerConfig([config])</syntaxhighlight>
{| class="wikitable"
{| class="wikitable"
! الاسم
! الاسم
سطر 65: سطر 57:
! مطلوب
! مطلوب
|-
|-
| config
| <code>config</code>
| AppConfig
| AppConfig
| نعم
| نعم
سطر 96: سطر 88:
=== <code>‎registerComponent()‎</code> ===
=== <code>‎registerComponent()‎</code> ===


<syntaxhighlight class="react">static registerComponent(appKey, componentProvider, section?)</syntaxhighlight>
<syntaxhighlight class="react" lang="javascript">static registerComponent(appKey, componentProvider, section?)</syntaxhighlight>
'''المعاملات'''
'''المعاملات'''


سطر 119: سطر 111:
=== <code>‎registerRunnable()‎</code> ===
=== <code>‎registerRunnable()‎</code> ===


<syntaxhighlight class="react">static registerRunnable(appKey, run)</syntaxhighlight>
<syntaxhighlight class="react" lang="javascript">static registerRunnable(appKey, run)</syntaxhighlight>
'''المعاملات'''
'''المعاملات'''


سطر 135: سطر 127:
| نعم
| نعم
|}
|}
=== <code>registerSection</code> ===
=== <code>registerSection</code> ===


<syntaxhighlight class="react">static registerSection(appKey, component)</syntaxhighlight>
<syntaxhighlight class="react" lang="javascript">static registerSection(appKey, component)</syntaxhighlight>
'''المعاملات'''
'''المعاملات'''


سطر 152: سطر 141:
| نعم
| نعم
|-
|-
| component
| <code>component</code>
| ComponentProvider
| ComponentProvider
| نعم
| نعم
|}
|}
=== <code>getAppKeys</code> ===
=== <code>getAppKeys</code> ===


<syntaxhighlight class="react">static getAppKeys()</syntaxhighlight>
<syntaxhighlight class="react" lang="javascript">static getAppKeys()</syntaxhighlight>
تُرجع مصفوفة من <code>AppKeys</code>.
تُرجع مصفوفة من <code>AppKeys</code>.
=== <code>‎getSectionKeys()‎</code> ===
=== <code>‎getSectionKeys()‎</code> ===


<syntaxhighlight class="react">static getSectionKeys()</syntaxhighlight>
<syntaxhighlight class="react" lang="javascript">static getSectionKeys()</syntaxhighlight>
تُرجع مصفوفة من <code>sectionKeys</code>.
تُرجع مصفوفة من <code>sectionKeys</code>.
=== <code>‎getSections()‎</code> ===
=== <code>‎getSections()‎</code> ===


<syntaxhighlight class="react">static getSections()</syntaxhighlight>
<syntaxhighlight class="react" lang="javascript">static getSections()</syntaxhighlight>
تُرجع جميع كائنات <code>Runnables</code>، وهي كائنات يحتوي كل واحد منها على مفتاح (AppKey) وقيمة من نوع <code>Runnable</code> والتي تتكون من:
تُرجع جميع كائنات <code>Runnables</code>، وهي كائنات يحتوي كل واحد منها على مفتاح (AppKey) وقيمة من نوع <code>Runnable</code> والتي تتكون من:


سطر 181: سطر 163:
=== <code>‎getRunnable()‎</code> ===
=== <code>‎getRunnable()‎</code> ===


<syntaxhighlight class="react">static getRunnable(appKey)</syntaxhighlight>
<syntaxhighlight class="react" lang="javascript">static getRunnable(appKey)</syntaxhighlight>
تُرجع كائن من النوع <code>Runnable</code>، ويتكون من:
تُرجع كائن من النوع <code>Runnable</code>، ويتكون من:


سطر 189: سطر 171:
=== <code>‎getRegistry()‎</code> ===
=== <code>‎getRegistry()‎</code> ===


<syntaxhighlight class="react">static getRegistry()</syntaxhighlight>
<syntaxhighlight class="react" lang="javascript">static getRegistry()</syntaxhighlight>
تُرجع الكائن <code>Registry</code> والذي يحتوي على:
تُرجع الكائن <code>Registry</code> والذي يحتوي على:


سطر 197: سطر 179:
=== <code>‎setComponentProviderInstrumentationHook()‎</code> ===
=== <code>‎setComponentProviderInstrumentationHook()‎</code> ===


<syntaxhighlight class="react">static setComponentProviderInstrumentationHook(hook)</syntaxhighlight>
<syntaxhighlight class="react" lang="javascript">static setComponentProviderInstrumentationHook(hook)</syntaxhighlight>
'''المعاملات'''
'''المعاملات'''


سطر 205: سطر 187:
! مطلوب
! مطلوب
|-
|-
| hook
| <code>hook</code>
| دالة (function)
| دالة (function)
| نعم
| نعم
سطر 216: سطر 198:


تُرجع الدالة <code>hook</code> مكوِّن React.
تُرجع الدالة <code>hook</code> مكوِّن React.
=== <code>runApplication</code> ===
=== <code>runApplication</code> ===


<syntaxhighlight class="react">static runApplication(appKey, appParameters)</syntaxhighlight>
<syntaxhighlight class="react" lang="javascript">static runApplication(appKey, appParameters)</syntaxhighlight>
تُحمِّل حزمة تشغيل التطبيق.
تُحمِّل حزمة تشغيل التطبيق.


سطر 231: سطر 210:
! مطلوب
! مطلوب
|-
|-
| appKey
| <code>appKey</code>
| سلسلة نصية (string)
| سلسلة نصية (string)
| نعم
| نعم
|-
|-
| appParameters
| <code>appParameters</code>
| any
| any
| نعم
| نعم
|}
|}
=== <code>unmountApplicationComponentAtRootTag</code> ===
=== <code>unmountApplicationComponentAtRootTag</code> ===


<syntaxhighlight class="react">static unmountApplicationComponentAtRootTag(rootTag)</syntaxhighlight>
<syntaxhighlight class="react" lang="javascript">static unmountApplicationComponentAtRootTag(rootTag)</syntaxhighlight>
توقِف التطبيق عندما يُزال مكون معين.
توقِف التطبيق عندما يُزال مكون معين.


سطر 254: سطر 230:
! مطلوب
! مطلوب
|-
|-
| rootTag
| <code>rootTag</code>
| رقم (number)
| عدد (number)
| نعم
| نعم
|}
|}
سطر 261: سطر 237:
=== <code>‎registerHeadlessTask()‎</code> ===
=== <code>‎registerHeadlessTask()‎</code> ===


<syntaxhighlight class="react">static registerHeadlessTask(taskKey, taskProvider)</syntaxhighlight>
<syntaxhighlight class="react" lang="javascript">static registerHeadlessTask(taskKey, taskProvider)</syntaxhighlight>
<code>HeadlessTask</code> هي شيفرة يتم تنفيذها بدون واجهة مستخدم. المعامل <code>taskProvider</code> يُرجع دالة تأخذ بيانات من الشيفرة الأصلية. وبعد تنفيذ الدالة يُرسل إشعار للشيفرة الأصلية وقد يُدمر سياق جافا سكريبت الحالي (JS context).
<code>HeadlessTask</code> هي شيفرة يتم تنفيذها بدون واجهة مستخدم. المعامل <code>taskProvider</code> يُرجع دالة تأخذ بيانات من الشيفرة الأصلية. وبعد تنفيذ الدالة يُرسل إشعار للشيفرة الأصلية وقد يُدمر سياق جافا سكريبت الحالي (JS context).


سطر 273: سطر 249:
! مطلوب
! مطلوب
|-
|-
| taskKey
| <code>taskKey</code>
| سلسلة نصية (string)
| سلسلة نصية (string)
| نعم
| نعم
|-
|-
| taskProvider
| <code>taskProvider</code>
| taskProvider
| taskProvider
| نعم
| نعم
سطر 287: سطر 263:
=== <code>‎registerCancellableHeadlessTask()‎</code> ===
=== <code>‎registerCancellableHeadlessTask()‎</code> ===


<syntaxhighlight class="react">static registerCancellableHeadlessTask(taskKey, taskProvider, taskCancelProvider)</syntaxhighlight>
<syntaxhighlight class="react" lang="javascript">static registerCancellableHeadlessTask(taskKey, taskProvider, taskCancelProvider)</syntaxhighlight>
<code>HeadlessTask</code> هي شيفرة يتم تنفيذها بدون واجهة مستخدم. المعامل <code>taskProvider</code> يُرجع دالة تأخذ بيانات من الشيفرة الأصلية. وبعد تنفيذ الدالة يُرسل إشعار للشيفرة الأصلية وقد يُدمر سياق جافا سكريبت الحالي. المعامل <code>taskCancelProvider</code> دالة تُرجع النوع <code>void</code> ولا تأخذ معاملات، وتُستدعى عندما يُرسل طلب الإلغاء.
<code>HeadlessTask</code> هي شيفرة يتم تنفيذها بدون واجهة مستخدم. المعامل <code>taskProvider</code> يُرجع دالة تأخذ بيانات من الشيفرة الأصلية. وبعد تنفيذ الدالة يُرسل إشعار للشيفرة الأصلية وقد يُدمر سياق جافا سكريبت الحالي. المعامل <code>taskCancelProvider</code> دالة تُرجع النوع <code>void</code> ولا تأخذ معاملات، وتُستدعى عندما يُرسل طلب الإلغاء.


سطر 297: سطر 273:
! مطلوب
! مطلوب
|-
|-
| taskKey
| <code>taskKey</code>
| سلسلة نصية (string)
| سلسلة نصية (string)
| نعم
| نعم
|-
|-
| taskProvider
| <code>taskProvider</code>
| TaskProvider
| TaskProvider
| نعم
| نعم
|-
|-
| taskCancelProvider
| <code>taskCancelProvider</code>
| TaskCancelProvider
| TaskCancelProvider
| نعم
| نعم
سطر 314: سطر 290:
* الدالة <code>TaskCancelProvider</code> تُرجع `TaskCanceller.
* الدالة <code>TaskCancelProvider</code> تُرجع `TaskCanceller.
* الدالة <code>TaskCanceller</code> لا تأخذ معاملات وتُرجع النوع <code>void</code>.
* الدالة <code>TaskCanceller</code> لا تأخذ معاملات وتُرجع النوع <code>void</code>.
=== <code>startHeadlessTask</code> ===
=== <code>startHeadlessTask</code> ===


<syntaxhighlight class="react">static startHeadlessTask(taskId, taskKey, data)</syntaxhighlight>
<syntaxhighlight class="react" lang="javascript">static startHeadlessTask(taskId, taskKey, data)</syntaxhighlight>
تُستدعى من الشيفرة الأصلية، وتبدأ تنفيذ <code>headless task</code>.
تُستدعى من الشيفرة الأصلية، وتبدأ تنفيذ <code>headless task</code>.


سطر 331: سطر 304:
! مطلوب
! مطلوب
|-
|-
| taskId
| <code>taskId</code>
| رقم (number)
| عدد (number)
| نعم
| نعم
|-
|-
| taskKey
| <code>taskKey</code>
| سلسلة نصية (string)
| سلسلة نصية (string)
| نعم
| نعم
|-
|-
| data
| <code>data</code>
| any
| any
| نعم
| نعم
سطر 346: سطر 319:
=== <code>‎cancelHeadlessTask()‎</code> ===
=== <code>‎cancelHeadlessTask()‎</code> ===


<syntaxhighlight class="">static cancelHeadlessTask(taskId, taskKey)</syntaxhighlight>
<syntaxhighlight class="" lang="javascript">static cancelHeadlessTask(taskId, taskKey)</syntaxhighlight>
تُستدعى من الشيفرة الأصلية، وتلغي تنفيذ <code>headless task</code>.
تُستدعى من الشيفرة الأصلية، وتلغي تنفيذ <code>headless task</code>.


سطر 358: سطر 331:
! مطلوب
! مطلوب
|-
|-
| taskId
| <code>taskId</code>
| رقم (number)
| عدد (number)
| نعم
| نعم
|-
|-
| taskKey
| <code>taskKey</code>
| سلسلة نصية (string)
| سلسلة نصية (string)
| نعم
| نعم
|-
|-
| data
| <code>data</code>
| any
| any
| نعم
| نعم

مراجعة 12:02، 5 مارس 2021

ملاحظة: إذا كنت تستخدم 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 مطلوبًا في بداية سلسلة المطلوبات للتأكد من إعداد بيئة التنفيذ بشكل صحيح قبل أن تكون هناك حاجة لوحدات أخرى.

الدوال

setWrapperComponentProvider

static setWrapperComponenetProvider(provider)

المعاملات

الاسم النوع مطلوب
provider ComponentProvider نعم

enableArchitectureIndicator

static enableArchitectureIndicator(enabled)

المعاملات

الاسم النوع مطلوب
enabled قيمة منطقية (boolean) نعم

registerConfig

static registerConfig([config])
الاسم النوع مطلوب
config AppConfig نعم

المفاتيح الصالحة للاستخدام مع AppConfig

الاسم النوع مطلوب
appKey سلسلة نصية (string) نعم
component ComponentProvider لا
run دالة (function) لا
section قيمة منطقية (bool) لا

‎registerComponent()‎

static registerComponent(appKey, componentProvider, section?)

المعاملات

الاسم النوع مطلوب
appKey سلسلة نصية (string) نعم
componenetProvider ComponentProvider نعم
section قيمة منطقية (bool) لا

‎registerRunnable()‎

static registerRunnable(appKey, run)

المعاملات

الاسم النوع مطلوب
appKey سلسلة نصية (string) نعم
run دالة (function) نعم

registerSection

static registerSection(appKey, component)

المعاملات

الاسم النوع مطلوب
appKey سلسلة نصية (string) نعم
component ComponentProvider نعم

getAppKeys

static getAppKeys()

تُرجع مصفوفة من AppKeys.

‎getSectionKeys()‎

static getSectionKeys()

تُرجع مصفوفة من sectionKeys.

‎getSections()‎

static getSections()

تُرجع جميع كائنات Runnables، وهي كائنات يحتوي كل واحد منها على مفتاح (AppKey) وقيمة من نوع Runnable والتي تتكون من:

  • مكون (ComponentProvider).
  • دالة تشغيل (run).

‎getRunnable()‎

static getRunnable(appKey)

تُرجع كائن من النوع Runnable، ويتكون من:

  • مكون (ComponentProvider).
  • دالة تشغيل (run)

‎getRegistry()‎

static getRegistry()

تُرجع الكائن Registry والذي يحتوي على:

  • sections
  • runnables

‎setComponentProviderInstrumentationHook()‎

static setComponentProviderInstrumentationHook(hook)

المعاملات

الاسم النوع مطلوب
hook دالة (function) نعم

يحتوي الخطاف (hook) على المكونات التالية:

  • component من النوع ComponentProvider (مطلوب).
  • ScopedPerformanceLoggerمن النوع IPerformanceLogger (مطلوب).

تُرجع الدالة hook مكوِّن React.

runApplication

static runApplication(appKey, appParameters)

تُحمِّل حزمة تشغيل التطبيق.

المعاملات

الاسم النوع مطلوب
appKey سلسلة نصية (string) نعم
appParameters any نعم

unmountApplicationComponentAtRootTag

static unmountApplicationComponentAtRootTag(rootTag)

توقِف التطبيق عندما يُزال مكون معين.

المعاملات

الاسم النوع مطلوب
rootTag عدد (number) نعم

‎registerHeadlessTask()‎

static registerHeadlessTask(taskKey, taskProvider)

HeadlessTask هي شيفرة يتم تنفيذها بدون واجهة مستخدم. المعامل taskProvider يُرجع دالة تأخذ بيانات من الشيفرة الأصلية. وبعد تنفيذ الدالة يُرسل إشعار للشيفرة الأصلية وقد يُدمر سياق جافا سكريبت الحالي (JS context).

تُستعمل هذه الدالة لتشغيل بعض المهام في التطبيق أثناء عمله في الخلفية. على سبيل المثال لمزامنة البيانات أو التعامل مع الإشعارات الفورية أو تشغيل الموسيقى.

المعاملات

الاسم النوع مطلوب
taskKey سلسلة نصية (string) نعم
taskProvider taskProvider نعم
  • المعامل TaskProvider هو دالة تُرجع الدالة Task.
  • الدالة Task تأخذ بيانات وسيطة (arugments) وتُرجع Promise يتم استيفاؤه على أنه undefined.

‎registerCancellableHeadlessTask()‎

static registerCancellableHeadlessTask(taskKey, taskProvider, taskCancelProvider)

HeadlessTask هي شيفرة يتم تنفيذها بدون واجهة مستخدم. المعامل taskProvider يُرجع دالة تأخذ بيانات من الشيفرة الأصلية. وبعد تنفيذ الدالة يُرسل إشعار للشيفرة الأصلية وقد يُدمر سياق جافا سكريبت الحالي. المعامل taskCancelProvider دالة تُرجع النوع void ولا تأخذ معاملات، وتُستدعى عندما يُرسل طلب الإلغاء.

المعاملات

الاسم النوع مطلوب
taskKey سلسلة نصية (string) نعم
taskProvider TaskProvider نعم
taskCancelProvider TaskCancelProvider نعم
  • المعامل TaskProvider هو دالة تُرجع الدالة Task.
  • الدالة Task تأخذ بيانات كمعاملات وتُرجع Promise.
  • الدالة TaskCancelProvider تُرجع `TaskCanceller.
  • الدالة TaskCanceller لا تأخذ معاملات وتُرجع النوع void.

startHeadlessTask

static startHeadlessTask(taskId, taskKey, data)

تُستدعى من الشيفرة الأصلية، وتبدأ تنفيذ headless task.

المعامل taskId هو المُعرِّف الخاص بالمهمة المُراد بدأها، والمعامل taskKey هو المفتاح الخاص بها، والمعامل data هو البيانات التي يجب إرسالها للمهمة المراد تنفيذها.

المعاملات

الاسم النوع مطلوب
taskId عدد (number) نعم
taskKey سلسلة نصية (string) نعم
data any نعم

‎cancelHeadlessTask()‎

static cancelHeadlessTask(taskId, taskKey)

تُستدعى من الشيفرة الأصلية، وتلغي تنفيذ headless task.

المعامل taskId هو المُعرِّف الخاص بالمهمة المُراد الغاء تنفيذها (وهي المهمة التي بدأت عند استدعاء الدالة startHeadlessTask)، والمعامل taskKey هو المفتاح الخاص بها.

المعاملات

الاسم النوع مطلوب
taskId عدد (number) نعم
taskKey سلسلة نصية (string) نعم
data any نعم

المصادر

صفحة AppRegistry في توثيق React Native الرسمي.