تعد تقنية Push واحدة من أسرع الطرق لتوصيل الإشعارات لمستخدمي تطبيقك. لاستلامها ، لا يحتاج المستخدم إلى تنفيذ أي إجراءات ، ويتم بدؤها من جانب الخادم وتظهر مباشرة في شريط الإشعارات على شاشة الجهاز المحمول. في هذا الدرس ، سوف نفهم كيفية تنفيذ دفع الإخطارات في التطبيقات المبنية على منصة AppMaster .
Send Push
لإرسال إشعارات الدفع ، يتم استخدام كتل Send Push التي تتوافق مع نظام تشغيل الجهاز المستهدف ( iOS أو Android ).
الحصول على Push Token Bundle ID
لإجراء إرسال ، يجب عليك تحديد معلمتين على الأقل: Push Token IOS (Android) Bundle ID . لذلك ، يجدر البدء بالجزء التحضيري ومعرفة كيفية الحصول على هذه المعلمات.
بشكل افتراضي ، تحتوي قاعدة بيانات كل مشروع على نموذج Mobile Instance مرتبط بنموذج User ويحتوي على الحقول المطلوبة: push_token و bundle_id .
لنقم بإنشاء عملية تجارية منفصلة لتطبيق الهاتف المحمول ، والتي ستشكل نموذج Mobile Instance المكتمل. للحصول على رمز دفع ، استخدم كتلة Get Push Token .
الخطوة التالية هي الحصول على معلومات حول الجهاز. وهنا ، بناءً على نظام التشغيل ، ستكون هناك حاجة إلى كتل مختلفة. لذلك ، لتحديد نظام التشغيل ، يجب عليك استخدام كتلة Platform Switch .
بناءً على النتيجة ، يتم استخدام كتلة معلومات IOS Device Info Android Device Info . من هناك ، يمكنك الحصول على مجموعة متنوعة من المعلومات حول الجهاز ، ولكن في مثالنا ، يكفي معرفة Bundle ID فقط.
بعد جمع جميع البيانات ، يمكنك تكوين نموذج Mobile Instance ، والإشارة إلى نظام التشغيل الذي ينتمي إليه وتمريره كمعامل إخراج لعملية الأعمال.
تسجيل معلومات حول الجهاز المحمول للمستخدم
تتمثل الخطوة التالية في إنشاء عملية أعمال خلفية لربط Mobile Instance الذي تم إنشاؤه بمستخدم معين والتسجيل في قاعدة البيانات. تتطلب عملية الأعمال هذه ما يلي:
- اكتشف المستخدم الحالي باستخدام Auth: Get current user .
- قم بتوسيع محتويات نموذج Mobile Instance الناتج.
- أعد تجميع النموذج وأضف اتصال مستخدم إليه باستخدام كتلة Make Mobile Instance .
- استخدم قاعدة البيانات DB: Create Mobile Instance وحفظ البيانات في قاعدة البيانات.
في POST /Mobile Instance/ endpoint ، يمكنك استبدال عملية الأعمال القياسية بالعملية التي تم إنشاؤها للتو.
تتمثل المرحلة الأخيرة من الإعداد في تحديد الوقت المناسب لكتابة معلومات حول جهاز المستخدم في قاعدة البيانات. سيكون الحل المنطقي هو القيام بذلك عند إجراء التفويض في التطبيق. للقيام بذلك ، مباشرة بعد كتلة Set Auth Token ، يجب إضافة كتلتين جديدتين مع عمليات تجارية تم إنشاؤها مسبقًا إلى عملية ترخيص المستخدم في تطبيق الهاتف المحمول. الأول يتلقى وينشئ المعلومات الضرورية ، والثاني ينشئ اتصالًا بالمستخدم ويكتب إلى قاعدة البيانات.
إرسال الإخطارات
اكتمل الجزء التحضيري ، ويمكنك البدء في إرسال إشعارات الدفع. للقيام بذلك ، سننشئ عملية أعمال خلفية. تخيل أن مهمتنا ستكون إرسال إشعار إلى جميع مستخدمي تطبيقنا. سنرسلها فقط إلى الأجهزة التي تعمل بنظام التشغيل Android وليس إلى جميع أجهزة المستخدم ، ولكن فقط إلى الجهاز الذي تم استخدامه مؤخرًا.
لنبدأ بمعلمات الإدخال. من الضروري نقل نص الإشعار نفسه. يتكون من ثلاثة أجزاء: نص الرسالة (النص body ) وعنوانها ( title ) والعنوان الفرعي ( subtitle ).
بعد ذلك ، تحتاج إلى العثور على جميع مستخدمي التطبيق. للقيام بذلك ، استخدم كتلة Search User وقم بتعيين المعلمات الضرورية:
- _With = Mobile Instances (لا تحتاج فقط إلى الحصول على معلومات حول المستخدم ، ولكن أيضًا حول الجهاز المحمول المرتبط به)
- Limit = -1 (بشكل افتراضي ، يقوم الاستعلام بإرجاع 25 سجلاً ، ويتم تحديد "-1" لإزالة هذا الحد والحصول على جميع المستخدمين)
- _mobile_instances_os = Android (وفقًا لشروط المهمة ، نحن مهتمون فقط بأجهزة Android )
بالنسبة لمجموعة المستخدمين التي تم إنشاؤها ، تحتاج إلى تشغيل دورة من العمليات ( For each loop )
لكل مستخدم من كتلة Expand User الموسع ، تحتاج إلى الحصول على معلومات حول الأجهزة المحمولة ( Mobile Instances ). نحتاج إلى إرسال إشعار إلى جهاز واحد فقط ، لذلك قمنا بتعيين index = 0 في كتلة Array Element أيضًا مما إذا كانت المصفوفة تحتوي على عنصر واحد على الأقل على الإطلاق (بعد كل شيء ، يمكن للمستخدم امتلاك جهاز iOS فقط). للقيام بذلك ، نتحقق من صحة العنصر ، ونمرر قيمة الفهرس الصالحة إلى كتلة If-Else ، ونتابع الحلقة فقط إذا كانت القيمة true .
إذا كان كل شيء صحيحًا وتم العثور على معلومات حول جهاز المستخدم ، فأنت بحاجة إلى استخدام كتلة Expand Mobile Instance وتمرير القيم الضرورية إلى كتلة Send Push (Android) .
يرجى ملاحظة أنه عند تطوير تطبيق واختباره في تطبيق Developer App ، يجب عليك تعيين Developer Mode = True .
يمكنك أيضًا استخدام خيار TTL (Time to live) . تحدد الوقت بالثواني لإرسال الإشعار. إذا تعذر تسليم الإشعار على الفور ، على سبيل المثال ، إذا كان المستخدم خارج النطاق مؤقتًا ، فسيتم إجراء محاولات تسليم متكررة في الوقت المحدد.
في نهاية الدورة وإرسال الإشعارات إلى جميع المستخدمين المحتملين ، يتم أيضًا إكمال عمل عملية الأعمال.
معلمات إضافية
بشكل منفصل ، يجدر مناقشة المعلمات الإضافية لكتلة الإرسال:
- Push ID
- Push Class
- Data
لا تؤثر على حقيقة إرسال إشعار أو محتواه ، ولكن يمكن استخدامها عند معالجة إشعار من جانب المستخدم. يحتوي تطبيق الهاتف المحمول على مشغلات خاصة يتم تشغيلها عند تلقي إشعار دفع مستلم أو النقر فوقه.
تحتوي مشغلات إشعارات الدفع على بيانات من معلمات النص الإضافية المذكورة أعلاه. كمثال ، يمكننا تقديم أبسط عملية ، والتي عند النقر فوق المشغل ، ستعرض إشعارًا إضافيًا على الشاشة مع المعلومات التي تم تمريرها في معلمة Data .
هناك حالة أخرى شائعة لاستخدام المشغلات وهي جمع المعلومات حول تسليم الإخطارات. على سبيل المثال ، يمكنهم إرسال رسالة إلى الخادم تفيد بأن إشعار الدفع قد تم تسليمه بالفعل ، بالإضافة إلى جمع الإحصائيات وحساب عدد النقرات على الإشعارات.