الإجراءات والروابط العميقة
أضف أزرارًا وافتح الشاشة المناسبة
الإجراءات والروابط العميقة درس مجاني في Android Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Android Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Android Academy 4 دروس في المجموع.
الإجراءات والروابط العميقة
تصبح الإشعارات مفيدة عندما تنفّذ إجراءً. فمن المفترض أن يؤدي النقر على الإشعار إلى فتح الشاشة المناسبة، وأن تنفّذ أزرار الإجراءات المهام السريعة. ويعتمد كلا الأمرين على PendingIntent.
ما هو PendingIntent؟
إن PendingIntent رمز تسلّمه إلى النظام، ويتيح له تنفيذ Intent نيابةً عنك لاحقًا، حتى عندما لا يكون تطبيقك قيد التشغيل. تستخدمه الإشعارات لتشغيل النشاط الخاص بك.
إنشاء PendingIntent للمحتوى
أنشئ Intent للشاشة المطلوب فتحها، وغلّفه داخل PendingIntent، ثم أرفقه باستخدام setContentIntent بحيث يؤدي النقر إلى فتح تلك الشاشة.
val intent = Intent(context, MainActivity::class.java)
val pending = PendingIntent.getActivity(
context, 0, intent,
PendingIntent.FLAG_IMMUTABLE
)
builder.setContentIntent(pending).setAutoCancel(true)علامة قابلية التغيير
منذ Android 12، يجب أن يحدّد PendingIntent إما FLAG_IMMUTABLE أو FLAG_MUTABLE. يُفضّل استخدام FLAG_IMMUTABLE ما لم يحتج النظام إلى تعبئة البيانات (كما يحدث مع بعض الردود).
إضافة زر إجراء
استخدم addAction مع رمز وتصنيف وPendingIntent لإضافة زر قابل للنقر إلى الإشعار، مثل "الرد" أو "وضع علامة كمقروء".
builder.addAction(
R.drawable.ic_reply,
"Reply",
replyPendingIntent
)تُشغّل الإجراءات المكوّنات
يمكن أن يستهدف PendingIntent الخاص بإجراء ما Activity أو Service أو BroadcastReceiver. وغالبًا ما يستهدف زر "وضع علامة كمقروء" مستقبلًا حتى يعمل من دون فتح أي شاشة.
val markIntent = Intent(context, MarkReadReceiver::class.java)
val markPending = PendingIntent.getBroadcast(
context, 0, markIntent, PendingIntent.FLAG_IMMUTABLE
)إنشاء رابط عميق إلى شاشة
يفتح الرابط العميق وجهةً محددة داخل تطبيقك، وليس الشاشة الرئيسية فحسب. باستخدام Navigation Compose، يمكنك إنشاء PendingIntent يصل إلى مسار محدد تمامًا.
إنشاء PendingIntent لرابط عميق
يوفّر مكوّن Navigation الفئة NavDeepLinkBuilder (أو Intent لرابط عميق مع URI) لإنشاء PendingIntent يستهدف وجهةً ومعاملات محددة.
val deepLinkPending = NavDeepLinkBuilder(context)
.setGraph(R.navigation.nav_graph)
.setDestination(R.id.chatScreen)
.setArguments(bundleOf("chatId" to "42"))
.createPendingIntent()الروابط العميقة المستندة إلى URI
يمكنك أيضًا تسجيل نمط URI في مخطط التنقّل وإنشاء Intent باستخدام Uri ذلك. وعند النقر على الإشعار، ينتقل التطبيق مباشرةً إلى الشاشة المطابقة.
val intent = Intent(
Intent.ACTION_VIEW,
"myapp://chat/42".toUri(),
context, MainActivity::class.java
)الحفاظ على مكدس الرجوع
بالنسبة إلى الروابط العميقة، احرص على إنشاء مكدس رجوع منطقي، بحيث يؤدي الضغط على زر الرجوع إلى إعادة المستخدم إلى شاشة أصل بدلًا من الخروج من التطبيق. يتولى TaskStackBuilder أو منشئ الروابط العميقة في التنقّل معالجة ذلك.
رموز طلب فريدة
إذا أنشأت عدة كائنات PendingIntent مختلفة، فامنح كلًّا منها رمز طلب مميزًا (وهو الوسيط الثاني). وتُعامل النوايا المتطابقة التي تستخدم الرمز نفسه باعتبارها PendingIntent نفسه.
اختبار سريع
اختبر مدى فهمك للإجراءات والروابط العميقة.
مراجعة
لقد أضفت التفاعلية:
- يتيح
PendingIntentللنظام تنفيذ إجراء نيابةً عنك؛ استخدمFLAG_IMMUTABLE - يحدّد
setContentIntentالإجراء الذي ينفّذ عند النقر - يضيف
addActionأزرارًا تستهدف الأنشطة أو الخدمات أو المستقبلات - تفتح الروابط العميقة شاشات محددة تمامًا مع الحفاظ على مكدس الرجوع
التالي: إذن وقت تشغيل الإشعارات.
الأسئلة الشائعة
هل درس «الإجراءات والروابط العميقة» مجاني؟
نعم — نص درس «الإجراءات والروابط العميقة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Android Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Android Academy 4 دروس في المجموع.
ماذا ستتعلم في «الإجراءات والروابط العميقة»؟
أضف أزرارًا وافتح الشاشة المناسبة تتمرن على Android Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Android Academy؟
لا تُشترط خبرة سابقة. Android Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «الإجراءات والروابط العميقة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Android Academy هذا؟
نعم. كل درس في Android Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- قنوات الإشعارات
- إنشاء إشعار
- الإجراءات والروابط العميقة
- إذن الإشعارات أثناء التشغيل