# إجراءات العميل لمكون Pushwoosh Outsystems الإضافي

يوفر المكون الإضافي مجموعة من إجراءات العميل لتسهيل إدارة إشعارات الدفع. تسمح لك هذه الإجراءات بتسجيل وإلغاء تسجيل الأجهزة، وتعيين العلامات والحصول عليها، وإدارة رسائل البريد الوارد، والمزيد.

## إجراءات العميل لمكون Pushwoosh الإضافي

### CheckPushwooshPlugin

يتحقق مما إذا كان مكون Pushwoosh الإضافي متاحًا حاليًا.

#### معاملات الإخراج

| IsAvailable | تُرجع `true` إذا كان المكون الإضافي متاحًا للاستخدام، وإلا `false` |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error       | خطأ يحتوي على رمز الخطأ ورسالة الخطأ مع تفاصيل حول أي خطأ قد يكون قد حدث. يتم تعيينه فقط عندما يكون معامل الإخراج `Success` هو `false`. |

#### مثال على الاستخدام

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-1.webp" alt="CheckPushwooshPlugin action"/>

### RegisterDevice

يسجل جهازًا لتلقي إشعارات الدفع ويسترد رمز `Push Token`.

#### معاملات الإدخال

| ApplicationCode | نص، رمز تطبيق Pushwoosh الذي تم الحصول عليه من إعدادات حسابك. |
| --------------- | ------------------------------------------------------------------------- |



#### معاملات الإخراج

| RegisterToken | الرمز المستلم من Google أو Apple للجهاز |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success       | تُرجع `true` إذا سار كل شيء كما هو متوقع، و`false` إذا كان هناك خطأ. |
| Error         | خطأ يحتوي على رمز الخطأ ورسالة الخطأ مع تفاصيل حول أي خطأ قد يكون قد حدث. يتم تعيينه فقط عندما يكون معامل الإخراج `Success` هو `false`. |

### UnregisterDevice

يلغي تسجيل جهاز من تلقي إشعارات الدفع.

#### معاملات الإخراج

| Success | تُرجع `true` إذا سار كل شيء كما هو متوقع، و`false` إذا كان هناك خطأ. |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | خطأ يحتوي على رمز الخطأ ورسالة الخطأ مع تفاصيل حول أي خطأ قد يكون قد حدث. يتم تعيينه فقط عندما يكون معامل الإخراج `Success` هو `false`. |

### GetDeviceID

يسترد معرف الجهاز (device ID)، والذي يجب أن يكون معرفًا فريدًا.

#### معاملات الإخراج

| DeviceHwid | المعرف الفريد للجهاز. |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Error      | خطأ يحتوي على رمز الخطأ ورسالة الخطأ مع تفاصيل حول أي خطأ قد يكون قد حدث. يتم تعيينه فقط عندما يكون هناك خطأ. |

### GetDeviceType

يحصل على نوع الجهاز (Android أو iOS أو Windows).

#### معاملات الإخراج

| DeviceTypeId | معرف نوع هذا الجهاز. |
| ------------ | ----------------------------------- |

### GetTags

يجلب بيانات العلامات من Pushwoosh.

#### معاملات الإخراج

| Success | تُرجع `true` إذا سار كل شيء كما هو متوقع، و`false` إذا كان هناك خطأ. |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | خطأ يحتوي على رمز الخطأ ورسالة الخطأ مع تفاصيل حول أي خطأ قد يكون قد حدث. يتم تعيينه فقط عندما يكون معامل الإخراج `Success` هو `false`. |
| Tags    | تُرجع قائمة سجلات `Key, Value` تحتوي على جميع العلامات المخصصة لهذا الجهاز. |

#### مثال على الاستخدام

1. استدعِ إجراء **GetTags** لجلب بيانات العلامات من Pushwoosh.
2. يمكن الوصول إلى العلامات المُرجعة عبر قائمة **GetTags.Tags**.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-2.webp" alt=""/>

3. استخدم إجراء **LogMessage** لتسجيل مفتاح وقيمة كل علامة.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-3.webp" alt=""/>

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-4.webp" alt=""/>

### PostEvent

يرسل رسالة إلى Pushwoosh عند وقوع حدث معين في تطبيقك.

#### معاملات الإدخال

| EventName       | نص، اسم الحدث |
| --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| EventAttributes | قائمة سجلات `Key, Value`، تُستخدم لإرسال بيانات حدث إضافية إلى Pushwoosh (على سبيل المثال، لإجراء "UserLogin" قد ترغب في إرسال بيانات تسجيل الدخول، مثل - `{"username":"John"}`) |

معاملات الإخراج

| Success | تُرجع `true` إذا سار كل شيء كما هو متوقع، و`false` إذا كان هناك خطأ. |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | خطأ يحتوي على رمز الخطأ ورسالة الخطأ مع تفاصيل حول أي خطأ قد يكون قد حدث. يتم تعيينه فقط عندما يكون معامل الإخراج `Success` هو `false`. |

#### مثال على الاستخدام

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-5.webp" alt=""/>

**1. تعيين**

قم بإعداد أزواج المفتاح-القيمة لتعريف بيانات الحدث. على سبيل المثال، `KeyValue1.AttributeName` كـ "test1" و `KeyValue1.Value` كـ "test1value". وبالمثل، قم بتعريف `KeyValue2` باسم وقيمة السمة المناسبين.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-6.webp" alt=""/>

2. أنشئ قوائم بالسمات التي سيتم ربطها بالحدث.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-7.webp" alt=""/>

3. أخيرًا، قم بتكوين إجراء **PostEvent**.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-8.webp" alt=""/>

### SetBadgeNumber

يضبط رقم شارة أيقونة التطبيق.

#### معاملات الإدخال

| BadgeNumber | عدد صحيح، رقم شارة الأيقونة. |
| ----------- | --------------------------- |

#### معاملات الإخراج

| Success | تُرجع `true` إذا سار كل شيء كما هو متوقع، و`false` إذا كان هناك خطأ. |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | خطأ يحتوي على رمز الخطأ ورسالة الخطأ مع تفاصيل حول أي خطأ قد يكون قد حدث. يتم تعيينه فقط عندما يكون معامل الإخراج `Success` هو `false`. |

### SetLanguage

يضبط لغة تطبيق مخصصة بدلاً من لغة النظام الافتراضية.

#### معاملات الإدخال

| Language | نص، لغة تطبيق مخصصة بتنسيق ISO المكون من حرفين (مثل "en"، "es"، "fr") |
| -------- | --------------------------------------------------------------------------------- |

### SetTags

يرسل العلامات وقيمها إلى Pushwoosh.

#### معاملات الإدخال

| Tags | قائمة سجلات `TagName, TagValue` تحتوي على جميع العلامات التي تريد إرسالها. يجب أن يكون نوع `TagName` دائمًا نصًا، بينما يمكن أن يكون `TagValue` نصًا أو عددًا صحيحًا أو قيمة منطقية أو تاريخًا، إلخ. |
| ---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |

#### معاملات الإخراج

| Success | تُرجع `true` إذا سار كل شيء كما هو متوقع، و`false` إذا كان هناك خطأ. |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | خطأ يحتوي على رمز الخطأ ورسالة الخطأ مع تفاصيل حول أي خطأ قد يكون قد حدث. يتم تعيينه فقط عندما يكون معامل الإخراج `Success` هو `false`. |

#### مثال على الاستخدام

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-9.webp" alt=""/>

1. قم بتعيين قيم العلامات. في المثال أدناه، هناك علامتان:

* Tag1 باسم `testTag` وقيمتها مضبوطة على التاريخ الحالي.
* Tag2 باسم `testTag2` وقيمتها مضبوطة على `True`.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-10.webp" alt=""/>

2. بعد ذلك، قم بإلحاق العلامات بقائمة. في هذا المثال:

* `ListAppend3` يضيف `Tag1` إلى قائمة `LocalTag`.
* `ListAppend4` يضيف `Tag2` إلى قائمة `LocalTag`.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-11.webp" alt=""/>

3. بعد ملء القائمة بالعلامات اللازمة، استخدم إجراء العميل **SetTags** لإرسال هذه القائمة إلى Pushwoosh.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-12.webp" alt=""/>

### SetUserId

يعين `User ID` مخصصًا لهذا الجهاز.

#### معاملات الإدخال

| UserID | نص، `User ID` مخصص. |
| ------ | --------------------- |

#### معاملات الإخراج

| Success | تُرجع `true` إذا سار كل شيء كما هو متوقع، و`false` إذا كان هناك خطأ. |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | خطأ يحتوي على رمز الخطأ ورسالة الخطأ مع تفاصيل حول أي خطأ قد يكون قد حدث. يتم تعيينه فقط عندما يكون معامل الإخراج `Success` هو `false`. |

### SetApiToken

يضبط رمز `Device API token` الخاص بـ Pushwoosh الذي يستخدمه SDK. استدعه قبل `RegisterDevice`. يمكن أيضًا تعيين الرمز في وقت الإنشاء باستخدام تفضيل `PW_API_TOKEN` — راجع [دليل التكامل](/ar/developer/pushwoosh-sdk/cross-platform-frameworks/outsystems/).

#### معاملات الإدخال

| Token | نص، رمز `Device API token` من لوحة تحكم Pushwoosh (قسم الوصول إلى API). |
| ----- | ---------------------------------------------------------------------------------- |

### EnableHuaweiPushNotifications

يحول وسيلة نقل الإشعارات إلى Huawei Push Kit (HMS). استدعه قبل `RegisterDevice` على أجهزة Huawei. يتطلب تكوين Huawei — راجع [Huawei لـ Outsystems](/ar/developer/pushwoosh-sdk/cross-platform-frameworks/outsystems/huawei-for-outsystems/).

لا يحتوي الإجراء على معاملات إخراج ولا يبلغ عن النجاح أو الفشل. للتحقق من وسيلة النقل التي سجل بها الجهاز بالفعل، استخدم `GetDiagnostics`.

### SetMultiNotificationMode

*متاح منذ إصدار مكون Pushwoosh Plugin 4.7.0.* **Android فقط** — يجعل كل إشعار دفع يظهر كإشعار منفصل بدلاً من استبدال الإشعار السابق. استدعه مرة واحدة بعد التهيئة — على سبيل المثال، في معالج حدث `OnInitializeOver`، بعد `RegisterDevice`. يتم تخزين الإعداد بواسطة SDK ويبقى بعد إعادة تشغيل التطبيق. يقوم Android بتجميع الإشعارات في حزمة واحدة قابلة للتوسيع — وهذا هو السلوك القياسي للنظام. لا يوجد تطبيق لـ iOS (iOS لا يستبدل الإشعارات أبدًا) — قم بحماية الاستدعاء باستخدام `GetDeviceType` بدلاً من وضعه في تدفق يعمل أيضًا على iOS.

### GetDiagnostics

*متاح منذ إصدار مكون Pushwoosh Plugin 4.7.0.* يُرجع حالة التكامل كسلسلة JSON: رمز التطبيق الفعال والمدمج ومصدره، ووجود رمز API، و HWID، ورمز الدفع، وحالة إذن الإشعارات، وإصدارات المكون الإضافي و SDK الأصلي. على Android، يتضمن بالإضافة إلى ذلك User ID وقائمة الخدمات المسجلة لأحداث رسائل FCM/HMS (هذان الحقلان غير موجودين على iOS). أرفق مخرجاته بتذاكر الدعم بدلاً من جمع سجلات الجهاز.

#### معاملات الإخراج

| DiagnosticsJSON | نص، حالة التكامل كسلسلة JSON. |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Error           | خطأ يحتوي على رمز الخطأ ورسالة الخطأ مع تفاصيل حول أي خطأ قد يكون قد حدث. |

مثال على المخرجات (Android):

```json
{
  "platform": "android",
  "packageName": "com.example.app",
  "appIdEffective": "XXXXX-XXXXX",
  "appIdManifest": "XXXXX-XXXXX",
  "appIdSource": "manifest",
  "apiTokenInManifest": false,
  "hwid": "d3ba13b6-…",
  "pushToken": "eAvqvOE0…",
  "userId": "d3ba13b6-…",
  "notificationsEnabled": true,
  "messagingServices": [
    { "action": "com.google.firebase.MESSAGING_EVENT", "class": "com.pushwoosh.firebase.PushFcmIntentService", "priority": 0 }
  ],
  "pluginVersion": "8.3.72-OS.1",
  "nativeSdkVersion": "6.11.1"
}
```

## إجراءات عميل Pushwoosh Inbox

عملية العمل مع Inbox هي كالتالي:

1. تحميل قائمة بكائنات `InboxMessage`.
2. استخدم هذه الكائنات لعرض واجهة البريد الوارد.
3. قم بتنفيذ الإجراءات المذكورة أدناه، أو احذف هذه الكائنات باستخدام الإجراءات الموضحة أدناه.

| code              | نص                   | معرف فريد لإشعار البريد الوارد.                                                                                                                                                                                                                                                                                               |
| ----------------- | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| title             | نص                   | عنوان الإشعار.                                                                                                                                                                                                                                                                                                               |
| message           | نص                   | رسالة الإشعار.                                                                                                                                                                                                                                                                                                             |
| imageUrl          | نص                   | عنوان URL لصورة مخصصة مرفقة بالإشعار.                                                                                                                                                                                                                                                                                 |
| sendDate          | <p>تاريخ</p><p>وقت</p> | يمثل الوقت الذي تم فيه إرسال الإشعار.                                                                                                                                                                                                                                                                                 |
| type              | عدد صحيح                | <p>نوع الإشعار.</p><p> القيم الممكنة:</p><ul><li>0 - إشعار عادي</li><li>1 - إشعار وسائط غنية</li><li>2 - إشعار URL</li><li>3 - إشعار رابط عميق</li></ul>                                                                                                                                |
| bannerUrl         | نص                   | يحتوي على عنوان URL لشعار Android.                                                                                                                                                                                                                                                                                                |
| customData        | قائمة سجلات `Key, Value` | يحتوي على قائمة بالمعلمات التي تم تمريرها كبيانات مخصصة.                                                                                                                                                                                                                                                                              |
| isRead            | منطقي                | `True` إذا تمت قراءة إشعار البريد الوارد.                                                                                                                                                                                                                                                                                               |
| isActionPerformed | منطقي                | <ul><li><strong>True</strong> إذا تم تنفيذ إجراء الإشعار. </li><li>للإشعارات العادية، <strong>true</strong> إذا تمت قراءة الإشعار. </li><li>للوسائط الغنية، <strong>true</strong> إذا تم عرض الوسائط الغنية. </li><li>لروابط URL والروابط العميقة، <strong>true</strong> إذا تم فتح الرابط.</li></ul> |

### LoadMessages

يجلب إشعارات البريد الوارد من Pushwoosh.

#### معاملات الإخراج

| InboxMessages | قائمة `InboxMessage`، قائمة بجميع رسائل البريد الوارد. |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success       | تُرجع **true** إذا سار كل شيء كما هو متوقع، و**false** إذا كان هناك خطأ. |
| Error         | خطأ يحتوي على رمز الخطأ ورسالة الخطأ مع تفاصيل حول أي خطأ قد يكون قد حدث. يتم تعيينه فقط عندما يكون معامل الإخراج `Success` هو `false`. |

### ReadMessage

يميز رسالة البريد الوارد كمقروءة.

#### معاملات الإدخال

| MessageCode | نص، رمز `InboxMessage` (يتم استلامه كمعامل لـ `InboxMessage` في `LoadMessages`) |
| ----------- | ------------------------------------------------------------------------------------------ |

#### معاملات الإخراج

| Success | `True` إذا سار كل شيء كما هو متوقع، و`false` إذا كان هناك خطأ. |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | خطأ يحتوي على رمز الخطأ ورسالة الخطأ مع تفاصيل حول أي خطأ قد يكون قد حدث. يتم تعيينه فقط عندما يكون معامل الإخراج `Success` هو `false`. |

### PerformAction

ينفذ إجراءً لرسائل البريد الوارد المحددة (على سبيل المثال، فتح URL في متصفح).

#### معاملات الإدخال

| MessageCode | نص، رمز `InboxMessage` (يتم استلامه كمعامل لـ `InboxMessage` في `LoadMessages`) |
| ----------- | ------------------------------------------------------------------------------------------ |

#### معاملات الإخراج

| Success | تُرجع `true` إذا سار كل شيء كما هو متوقع، و`false` إذا كان هناك خطأ. |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | خطأ يحتوي على رمز الخطأ ورسالة الخطأ مع تفاصيل حول أي خطأ قد يكون قد حدث. يتم تعيينه فقط عندما يكون معامل الإخراج `Success` هو `false`. |

### DeleteMessage

يزيل رسالة من البريد الوارد.

#### معاملات الإدخال

| MessageCode | نص، رمز `InboxMessage` (يتم استلامه كمعامل لـ `InboxMessage` في `LoadMessages`) |
| ----------- | ------------------------------------------------------------------------------------------ |

#### معاملات الإخراج

| Success | تُرجع `true` إذا سار كل شيء كما هو متوقع، و`false` إذا كان هناك خطأ. |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | خطأ يحتوي على رمز الخطأ ورسالة الخطأ مع تفاصيل حول أي خطأ قد يكون قد حدث. يتم تعيينه فقط عندما يكون معامل الإخراج `Success` هو `false`. |

### TotalMessagesCount

يُرجع العدد الإجمالي لرسائل البريد الوارد.

#### معاملات الإخراج

| MessagesCount | عدد صحيح، العدد الإجمالي لرسائل البريد الوارد. |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success       | تُرجع `true` إذا سار كل شيء كما هو متوقع، و`false` إذا كان هناك خطأ. |
| Error         | خطأ يحتوي على رمز الخطأ ورسالة الخطأ مع تفاصيل حول أي خطأ قد يكون قد حدث. يتم تعيينه فقط عندما يكون معامل الإخراج `Success` هو `false`. |

### UnreadMessagesCount

يُرجع عدد رسائل البريد الوارد غير المقروءة.

#### معاملات الإخراج

| UnreadMessagesCount | عدد صحيح، عدد رسائل البريد الوارد غير المقروءة. |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success             | تُرجع `true` إذا سار كل شيء كما هو متوقع، و`false` إذا كان هناك خطأ. |
| Error               | خطأ يحتوي على رمز الخطأ ورسالة الخطأ مع تفاصيل حول أي خطأ قد يكون قد حدث. يتم تعيينه فقط عندما يكون معامل الإخراج `Success` هو `false`. |

### MessagesWithNoActionPerformedCount

يُرجع عدد رسائل البريد الوارد التي لم يتم تنفيذ أي إجراء عليها.

#### معاملات الإخراج

| MessagesWithNoActionPerformedCount | عدد صحيح، عدد رسائل البريد الوارد التي لم يتم تنفيذ أي إجراء عليها. |
| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success                            | تُرجع `true` إذا سار كل شيء كما هو متوقع، و`false` إذا كان هناك خطأ. |
| Error                              | خطأ يحتوي على رمز الخطأ ورسالة الخطأ مع تفاصيل حول أي خطأ قد يكون قد حدث. يتم تعيينه فقط عندما يكون معامل الإخراج `Success` هو `false`. |