إنشاء إشعارات بالتحديثات الفورية

تقدّم "التحديثات الفورية" ملخّصًا للتحديثات المهمة حتى يتمكّن المستخدمون من تتبُّع مستوى التقدّم بدون فتح التطبيق. يروّج النظام لإشعارات "التحديثات الفورية"، ولكن يمكن للمستخدمين إغلاق إشعار "تحديث فوري" مؤقتًا أو خفض ترتيبه إلى إشعار عادي. تظهر الإشعارات الترويجية بشكلٍ بارز على مساحات عرض النظام، بما في ذلك أعلى درج الإشعارات وشاشة القفل، وكشريحة في شريط الحالة. يجب أن تلتزم إشعارات "التحديث الفوري" بمبادئ الإشعارات لتقديم معلومات موجزة وفي الوقت المناسب وذات صلة.

الشكل 1. مثال على إشعار "تحديث فوري"

تتضمّن بطاقات الإشعارات المُحسّنة خصائص المظهر التالية:

  • موسّع تلقائيًا
  • غير قابل للتصغير

يجب أن يستوفي إشعارك المتطلّبات التالية ليُعتبر تحديثًا فوريًا:

خصائص العرض الترويجي

تساعدك واجهات برمجة التطبيقات التالية في تحديد ما إذا كان النظام سيروّج لإشعارك:

  • يشير Notification.FLAG_PROMOTED_ONGOING إلى ما إذا تمت ترقية الإشعار.
  • يتحقق Notification.hasPromotableCharacteristics() مما إذا كان بإمكان النظام ترقية الإشعار. لا تأخذ هذه الطريقة في الاعتبار ما إذا كان المستخدم قد أوقف ميزة "التحديثات الفورية" للتطبيق في الإعدادات.
  • تتحقّق الدالة NotificationManager.canPostPromotedNotifications() مما إذا كان بإمكان تطبيقك نشر إشعار ترويجي، مثلاً، إذا فعّل المستخدم الإشعار أو أوقفه في الإعدادات.
  • Settings.ACTION_MANAGE_APP_PROMOTED_NOTIFICATIONS هو إجراء الهدف الذي يتيح للتطبيقات توجيه المستخدمين إلى "الإعدادات" لتفعيل هذه الميزة.

معايير الاستخدام

استخدِم ميزة "التحديثات الفورية" للأنشطة الجارية التي يبدأها المستخدمون والتي تتطلّب دقة في التوقيت.

الشكل 2. تظهر التغطية المباشرة للأخبار على الشاشة الرئيسية وشاشة القفل، كما تظهر على شكل شريحة.

مستمر

يجب أن يمثّل "التحديث الفوري" نشاطًا جارٍ تنفيذه، مع تحديد وقت بدء ووقت انتهاء واضحَين. إذا حدث نشاط في الماضي، لا تستخدِم ميزة "التحديثات الفورية". بدلاً من ذلك، استخدِم إشعارًا عاديًا. وينطبق ذلك أيضًا على الأحداث التي لم تبدأ بعد، على الرغم من أنّ الأحداث التي أوشكت على البدء يمكن أن تستخدم ميزة "التحديثات الفورية".

تعرِض ميزة "التحديثات الفورية" الأنشطة المستمرة في الخلفية. لا تستخدِم ميزة "التحديثات الفورية" لتوفير إمكانية الوصول المُسرَّع إلى وظائف التطبيق. إذا أردت إجراء ذلك، استخدِم تطبيقًا صغيرًا أو مربّع إعدادات سريعة مخصّصًا.

  • الاستخدامات المناسبة: التنقّل النشط والمكالمات الهاتفية الجارية وتتبّع مشاركة الرحلة وتوصيل الطعام
  • الاستخدامات غير الملائمة: الإعلانات والعروض الترويجية ورسائل المحادثة والتنبيهات وأحداث التقويم القادمة وإمكانية الوصول السريع إلى ميزات التطبيق

الأنشطة التي يبدأها المستخدم

يجب أن تمثّل معظم "التحديثات الفورية" الأنشطة التي يبدأها المستخدم صراحةً، مثل بدء تمرين أو بدء التنقّل بالسيارة أو طلب سيارة أجرة. لا تعرض معلومات محيطة، مثل معلومات عن البيئة أو الاهتمامات أو الأحداث القادمة للمستخدم، في تحديث فوري. لا تسمح بإنشاء "تحديثات فورية" من الأنشطة التي تبدأها أطراف أخرى.

في بعض الأحيان، قد يتّخذ المستخدِم إجراءً يؤدي إلى بدء نشاط في وقت ما في المستقبل. على سبيل المثال، إذا اشترى المستخدم تذاكر لرحلة جوية أو حفلة موسيقية، أو اشترك في بطولة، أو أشار بطريقة أخرى إلى مشاركته في حدث مستقبلي مرتبط بوقت معيّن. في هذه الحالات، قد يكون من المناسب عرض تحديث فوري تلقائيًا عند بدء الحدث المقرّر. ومع ذلك، على التطبيقات تعديل عوامل التفعيل بحيث لا تظهر إلا عندما يكون النشاط وشيكًا. إذا أشار العميل صراحةً إلى أنّه يريد بدء مراقبة حدث في الخلفية، مثل مباراة رياضية، يمكنك بدء نشر آخر الأخبار عن هذا الحدث. ومع ذلك، يجب أيضًا تضمين إجراء إزالة التثبيت في الإشعار المرتبط.

عرض الإشعار في الوقت المناسب

لا تعرض "تحديثًا فوريًا" إلا إذا كان يتطلّب انتباه المستخدم طوال النشاط. من حالات الاستخدام الرئيسية لميزة "التحديثات الفورية" هي المراقبة، عندما يحصل المستخدم على فائدة كبيرة من إلقاء نظرة سريعة على "آخر الأخبار" لتتبُّع الحالة المتغيّرة للنشاط.

غالبًا ما يكون "التحديث الفوري" مناسبًا للأنشطة التي تنتقل بين "التحديثات الفورية" والإشعارات العادية. على سبيل المثال، يكون عرض إشعار بشأن بطاقة صعود الطائرة مناسبًا قبل ساعات عديدة من موعد رحلة المستخدم، ولكن يجب أن يصبح الإشعار "تحديثًا فوريًا" فقط عندما يكون لدى المستخدم حاجة ملحّة، مثل وصوله إلى المطار أو المكان أو بعد بدء صعود الطائرة. في المقابل، لا يكون "التحديث الفوري" مناسبًا لتتبُّع حزمة لأنّه لا يحتاج المستخدم إلى مراقبتها باستمرار.

ممارسات تجربة المستخدم

استخدِم رمز أداة التتبُّع لتصوُّر الحالة. ويمكن تعديل هذه المعلومات بشكل ديناميكي.

أداة تتبُّع مخصّصة على شريط تقدّم
الشكل 3. رمز جهاز تتبُّع مخصّص

عندما يتم احتساب الوقت المقدَّر للوصول أو عندما لا يكون متاحًا بعد، لا تعرض حالة فارغة. قدِّم نصًا نشطًا للعبارات النائبة، مثل "جارٍ التفكير..." أو "جارٍ إعادة التوجيه..." للإشارة إلى أنّ النظام يعمل، كما هو موضّح في المثال.

حالة غير فارغة لعرض التفكير
الشكل 4. حالة غير فارغة للتحديث الفوري

شرائح الحالة

تسمح شرائح الحالة للمستخدمين بتتبُّع "التحديثات الفورية" عندما يكون الإشعار غير معروض. استخدِم setShortCriticalText أو setWhen لإرسال معلومات الحالة المهمة بشأن الإشعار الذي يركز على مستوى التقدّم.

شريحة حالة تتضمّن رمزًا
الشكل 5. تعرض الحالة غير المحدّدة الرمز الصغير Notification.Builder#setSmallIcon.
شريحة حالة تتضمن الوقت
الشكل 6. استخدِم Notification.Builder#setShortCriticalText لعرض الوقت المطلق.
شريحة حالة تتضمّن معلومات
الشكل 7. استخدِم Notification.Builder#setShortCriticalText لنقل المعلومات المهمة.

عندما يكون الوقت

هو الوقت الذي يبدأ فيه العد التنازلي لمدة ظهور الإشعار، ما لم يتم إغلاق الإشعار أو تعديله. توضّح النقاط التالية كيفية عمل الوقت في مواقف مختلفة:

  • إذا كان وقت "متى" يقع بعد دقيقتين على الأقل من الوقت الحالي: إذا كان الوقت الحالي هو 10:05 صباحًا وتم ضبط وقت "متى" على 10:10 صباحًا، ستعرض الشريحة 5 دقائق.
  • إذا كان وقت "متى" في الماضي: لا يظهر النص.
  • يمكن عرض موقّت في الشريحة عند استخدام Chronometer لتحديد الوقت. يمكنك الاطّلاع على setUsesChronometer وsetChronometerCountdown. يظهر مؤقّت الكرونومتر في الشريحة طالما أنّه موجب.
  • إذا كنت لا تريد أن يظهر وقت الإشعار، استخدِم setShowWhen إلى FALSE.

مظهر شريحة الحالة

تتضمّن شريحة الحالة دائمًا رمزًا، ويمكن أن تتضمّن نصًا. يبلغ الحد الأقصى لعرض الشريحة 96 وحدة بكسل مستقلة عن الكثافة. لن يظهر النص إلا إذا كان بإمكان الشريحة استيعاب النص بأكمله. يتم عرض النص استنادًا إلى المعايير التالية:

  • إذا كان النص يضم أقل من 7 أحرف، اعرض النص بأكمله.
  • إذا كان سيتم عرض أقل من نصف النص، اعرض الرمز فقط.
  • إذا كان سيتم عرض أكثر من نصف النص، اعرض أكبر قدر ممكن من النص.

الإغلاق

يمكن للمستخدمين التحكّم في مستوى ظهور الإشعارات في مركز الإشعارات. قد يؤدي نشر "تحديثات فورية" غير مرغوب فيها إلى أن يبطل المستخدمون إذن نشر التطبيق.

لمنع المستخدمين من إيقاف ميزة "التحديثات الفورية" نهائيًا، تجنَّب نشر تحديثات قد يغلقها المستخدمون. لا تُعيد نشر "التحديثات الفورية" التي أغلقها المستخدم. استخدِم setDeleteIntent لرصد التحديثات التي تم تجاهلها.

يمكنك الاطّلاع على تطبيق نموذجي لتجربة استخدام واجهات برمجة التطبيقات هذه.

الأسئلة الشائعة

السؤال: ما هي النقطة البيضاء في نهاية شريط التقدّم؟

مؤشر مرئي لتسهيل استخدام نهاية مؤشر التقدّم
الشكل 8. تصوّر إمكانية الوصول إلى نهاية الرحلة

الإجابة: تشير النقطة البيضاء في نهاية شريط التقدم إلى نهاية شريط التقدم.

السؤال: لماذا لا تتوفّر الإشعارات المخصّصة في "الإشعارات الفورية"؟

الإجابة: تجعل الإشعارات المخصّصة الاختبارات المتسقة وتجربة المستخدم صعبة، لأنّ سلوكها يختلف بشكل كبير بين إصدارات Android ومصنّعي الأجهزة. تجنَّب الإشعارات المخصّصة باستخدام RemoteViews.