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

من موسوعة حسوب
إضافة الصّفحة
 
لا ملخص تعديل
سطر 3: سطر 3:
اكتشاف الضغطات على زر الجهاز الخاص بالتنقل للوراء (back navigation).
اكتشاف الضغطات على زر الجهاز الخاص بالتنقل للوراء (back navigation).


Android: اكتشاف الضغطات على زر التنقل للوراء، واستدعاء وظيفة زر الرجوع الافتراضية برمجيًا للخروج من التطبيق في حالة عدم وجود مستمعين (listeners) أو في حالة عدم إعادة أي من المستمعين القيمةَ ‎‎<code>true</code>‎‎.
'''Android:''' اكتشاف الضغطات على زر التنقل للوراء، واستدعاء وظيفة زر الرجوع الافتراضية برمجيًا للخروج من التطبيق في حالة عدم وجود مستمعين (listeners) أو في حالة عدم إعادة أي من المستمعين القيمةَ ‎‎<code>true</code>‎‎.


tvOS: كشف الضغطات على زر القائمة على جهاز التحكم عن بعد الخاص بالتلفاز. (ميّزةٌ لم تُطبَّق بعد: تعطيل وظيفة معالجة زر القائمة برمجيًا لإنهاء التطبيق في حالة عدم إعادة أي من المستمعين القيمةَ ‎‎<code>true</code>‎‎.)
'''tvOS:''' كشف الضغطات على زر القائمة على جهاز التحكم عن بعد الخاص بالتلفاز. (ميّزةٌ لم تُطبَّق بعد: تعطيل وظيفة معالجة زر القائمة برمجيًا لإنهاء التطبيق في حالة عدم إعادة أي من المستمعين القيمةَ ‎‎<code>true</code>‎‎.)


iOS: غير معمول به.
'''iOS:''' غير معمول به.


تُستدعى اشتراكات الحدث (event subscriptions) بترتيب عكسي (أي أنّ الأولويّة لآخر اشتراك مسجل) ، وإذا أعاد اشتراك واحد القيمةَ ‎‎<code>true</code>‎‎، فلن تُستدعى الاشتراكات المسجلة السابقة. تحذير: إذا أظهر تطبيقك نافذة شرطيّة (‎‎<code>Modal</code>‎‎) مفتوحة، فلن تنشر واجهة BackHandler أي أحداث (انظر [https://wiki.hsoub.com/ReactNative/modal توثيق ‎‎<code>Modal</code>‎‎]).
تُستدعى اشتراكات الحدث (event subscriptions) بترتيب عكسي (أي أنّ الأولويّة لآخر اشتراك مسجل) ، وإذا أعاد اشتراك واحد القيمةَ ‎‎<code>true</code>‎‎، فلن تُستدعى الاشتراكات المسجلة السابقة. تحذير: إذا أظهر تطبيقك نافذة شرطيّة (‎‎<code>Modal</code>‎‎) مفتوحة، فلن تنشر واجهة <code>BackHandler</code> أي أحداث (انظر [https://wiki.hsoub.com/ReactNative/modal توثيق ‎‎<code>Modal</code>‎‎]).


==مثال==
==مثال==

مراجعة 19:58، 14 ديسمبر 2019


اكتشاف الضغطات على زر الجهاز الخاص بالتنقل للوراء (back navigation).

Android: اكتشاف الضغطات على زر التنقل للوراء، واستدعاء وظيفة زر الرجوع الافتراضية برمجيًا للخروج من التطبيق في حالة عدم وجود مستمعين (listeners) أو في حالة عدم إعادة أي من المستمعين القيمةَ ‎‎true‎‎.

tvOS: كشف الضغطات على زر القائمة على جهاز التحكم عن بعد الخاص بالتلفاز. (ميّزةٌ لم تُطبَّق بعد: تعطيل وظيفة معالجة زر القائمة برمجيًا لإنهاء التطبيق في حالة عدم إعادة أي من المستمعين القيمةَ ‎‎true‎‎.)

iOS: غير معمول به.

تُستدعى اشتراكات الحدث (event subscriptions) بترتيب عكسي (أي أنّ الأولويّة لآخر اشتراك مسجل) ، وإذا أعاد اشتراك واحد القيمةَ ‎‎true‎‎، فلن تُستدعى الاشتراكات المسجلة السابقة. تحذير: إذا أظهر تطبيقك نافذة شرطيّة (‎‎Modal‎‎) مفتوحة، فلن تنشر واجهة BackHandler أي أحداث (انظر توثيق ‎‎Modal‎‎).

مثال

BackHandler.addEventListener('hardwareBackPress', function() {
  //  this.onMainScreen و this.goBack
  // مثالان فقط، ستحتاج إلى استخدام توابعك الخاصة هنا
  // عادةً ما يُستخدم مكوّن الانتقال هنا للرجوع إلى الحالة السابقة

  if (!this.onMainScreen()) {
    this.goBack();
    return true;
  }
  return false;
});

مثال دورة الحياة

  componentDidMount() {
    this.backHandler = BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);
  }

  componentWillUnmount() {
    this.backHandler.remove()
  }

  handleBackPress = () => {
    this.goBack(); // يعمل بشكل أفضل عندما يكون هذا التابع غير متزامن
    return true;
  }

بديل دورة الحياة

  componentDidMount() {
    this.backHandler = BackHandler.addEventListener('hardwareBackPress', () => {
      this.goBack(); // يعمل بشكل أفضل عندما يكون هذا التابع غير متزامن
      return true;
    });
  }

  componentWillUnmount() {
    this.backHandler.remove();
  }

التوابع

‎‎addEventListener()‎‎

static addEventListener(eventName, handler)

‎‎exitApp()‎‎

static exitApp()

‎‎removeEventListener()‎‎

static removeEventListener(eventName, handler)

مصادر