# Outsystems

## تثبيت إضافة Pushwoosh

ابدأ بتثبيت إضافة Pushwoosh من [OutSystems Forge](https://www.outsystems.com/forge/component-overview/1556/pushwoosh-plugin). أسرع طريقة للقيام بذلك هي الانتقال إلى علامة تبويب OutSystems في بيئة التطوير الخاصة بك وتثبيتها من هناك.

### تكوين Pushwoosh

ستحتاج إلى تكوين Pushwoosh لكل منصة من المنصات التي ستدعمها. بمجرد الانتهاء من التكوين، ستحصل على Application Code من Pushwoosh سيتم استخدامه مع الإضافة الخاصة بك.

#### لنظام iOS

تعرف على كيفية [تكوين Pushwoosh لنظام iOS](/ar/developer/first-steps/connect-messaging-services/ios-configuration/ios-platform-configuration/).

#### لنظام Android

تعرف على كيفية [تكوين Pushwoosh لنظام Android](/ar/developer/first-steps/connect-messaging-services/android-configuration/android-firebase-configuration/).

### إضافة إضافة Pushwoosh إلى تطبيقك

1. في تطبيقك، استخدم "Manage Dependencies…" لإضافة مرجع إلى إضافة Pushwoosh.

<img src="/outsystems.webp" alt=""/>

2. أضف كتلة "PushwooshNotifications" إلى:

   - كتلة "Layout" إذا كان تطبيقك لا يتطلب تسجيل الدخول
   - كتلة "LayoutBlank" إذا كان تطبيقك يتطلب تسجيل الدخول

   عند إضافة كتلة "PushwooshNotifications"، تجنب إضافتها داخل العناصر النائبة (placeholders)، لأن بعضها متاح فقط في وقت التصميم، وفي وقت التشغيل، لن يعمل Pushwoosh.

3. قم بتعيين المعلمات التالية في PushwooshNotifications:

   - **PushwooshApplicationCode:** هو كود Pushwoosh الذي حصلت عليه بعد إنشاء التطبيق في Pushwoosh.
   - **FCMSenderId:** هو رقم التعريف الذي حصلت عليه أثناء تكوين Android. يمكنك ترك هذا الحقل فارغًا إذا كان تطبيقك متاحًا فقط لنظام iOS.
   - **NotificationReceivedEvent (اختياري):** حدث يتم استدعاؤه عند استلام إشعار بينما يكون التطبيق في حالة الواجهة الأمامية.
   - **NotificationOpenedEvent (اختياري):** حدث يتم استدعاؤه عندما ينقر المستخدم على إشعار على جهازه.

إذا كنت تستخدم إضافة Pushwoosh في تطبيق Android الخاص بك، فقم بما يلي:

1. [احصل على ملف `google-services.json`](https://support.google.com/firebase/answer/7015592) من Firebase. يجب أن يتطابق اسم الحزمة (package name) من خدمات Google مع معرف التطبيق (app identifier) لتطبيق OutSystems الذي يتم بناؤه.
2. قم بإنشاء ملف zip يحتوي على `google-services.json` في الجذر.
3. قم بتحميل ملف "google-services.zip" من الخطوة السابقة إلى تطبيق OutSystems الخاص بك وتأكد من:
   - تعيين "Name" إلى "google-services.zip"
   - تعيين "Deploy to Target Directory" إلى "google-services"

<img src="/outsystems2.webp" alt=""/>

لكي يتمكن جهازك من استقبال إشعارات الدفع، ستحتاج إلى تسجيله. إذا كان المستخدمون بحاجة إلى تسجيل الدخول لاستخدام التطبيق، فانتقل إلى شاشة "Login" وقم بتحرير إجراء "Login".

<img src="/outsystems3.webp" alt=""/>


أضف الكود لتسجيل الجهاز بعد إجراء "DoLogin". يجب أن يبدو شيئًا كهذا:

<img src="/outsystems4.webp" alt=""/>

إذا كان تطبيقك لا يتطلب تسجيل الدخول، يمكنك إضافة هذا الكود إلى حدث `OnInitializeOver` في كتلة `PushwooshNotifications`.

<img src="/outsystems5.webp" alt=""/>

في معالج الأحداث هذا، قم باستدعاء إجراء `RegisterDevice`.

<img src="/outsystems6.webp" alt=""/>

إذا كنت تقوم بإنشاء تطبيق جوال لنظام iOS باستخدام شهادة مطور، فستحتاج إلى إضافة تفضيل إلى خاصية Extensibility Configurations في وحدة OutSystems الخاصة بك:

```json
{
  "preferences": {
    "global": [
      {
        "name": "aps-environment",
        "value": "development"
      }
    ]
  }
}
```

<img src="/outsystems7.webp" alt=""/>

سيتم إضافة هذا التفضيل إلى ملف الاستحقاقات (entitlements) الخاص بك (تعرف على المزيد حول الاستحقاقات في [توثيق مطوري Apple](https://developer.apple.com/library/content/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/AboutEntitlements.html)).

إذا كنت تقوم بإنشاء تطبيق جوال لنظام iOS باستخدام شهادة إنتاج، فلن تحتاج إلى تحديد أي تفضيل، لأن القيمة الافتراضية لتفضيل `aps-environment` في OutSystems هي `production`.

تطبيقك الآن جاهز لاستقبال إشعارات الدفع. [قم بتكوين وإنشاء تطبيق الجوال الخاص بك](https://success.outsystems.com/documentation/10/delivering_mobile_apps/generate_and_distribute_your_mobile_app/) وقم بتثبيته على جهازك. في هذه المرحلة، يمكنك استخدام واجهة Pushwoosh لإرسال إشعارات إلى تطبيقك والتأكد من أن كل شيء تم تكوينه بشكل صحيح. لاحظ أنك لن ترى إشعارًا إذا كان التطبيق قيد التشغيل. بدلاً من ذلك، يتم إطلاق حدث `NotificationReceivedEvent` على الفور.

### إرسال الإشعارات

لإرسال الإشعارات، تحتاج إلى [API Access Token](/ar/developer/api-reference/api-access-token/) من Pushwoosh. قم بإنشاء واحد عن طريق الوصول إلى لوحة تحكم Pushwoosh، انتقل إلى "API Access"، وانقر على "Generate new access token".

<img src="/outsystems8.webp" alt=""/>

لإرسال إشعار إلى جميع الأجهزة، استخدم إجراء `SendPushNotificationToAll`.

<img src="/outsystems9.webp" alt=""/>

يأخذ هذا الإجراء المعلمات التالية:

- **PushwooshApplicationCode:** هو كود Pushwoosh الذي حصلت عليه بعد إنشاء التطبيق في Pushwoosh.
- **ApiAccessToken:** هو API Access Token الخاص بـ Pushwoosh الذي تم الحصول عليه سابقًا.
- **Message:** نص الرسالة الذي ترغب في إرساله.
- **Badge:** رقم يتم عرضه على أيقونة تطبيق iOS.
- **Deeplink:** رابط عميق (deep link) لإرساله مع الإشعار. تعلم [كيفية تحديد الروابط العميقة](https://success.outsystems.com/documentation/how_to_guides/development/how_to_define_mobile_app_deep_links/).

على سبيل المثال، إذا استخدمت هذا الإجراء لإرسال رسالة "Hello from OutSystems" إلى تطبيق يسمى "PushTest"، فسيظهر ما يلي في نظام iOS:

<img src="/outsystems10.webp" alt=""/>

### معلومات إضافية

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

## شاركنا ملاحظاتك

تساعدنا ملاحظاتك في إنشاء تجربة أفضل، لذلك نود أن نسمع منك إذا واجهت أي مشاكل أثناء عملية دمج SDK. إذا واجهت أي صعوبات، فلا تتردد في مشاركة أفكارك معنا [عبر هذا النموذج](https://docs.google.com/forms/d/e/1FAIpQLSd_0b8jwn-V_JmoPLIxIFYbHACCQhrzidOZV3ELywoQPXRSxw/viewform).