# الوسائط الغنية المشروطة لنظام Android

<Aside type="note" title="هام">
متوفرة من SDK 6.7.13
</Aside>

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

## الميزات الرئيسية

- **واجهة مستخدم غير معطِّلة**: لا تمنع النافذة المشروطة التفاعل مع عناصر واجهة المستخدم الأخرى.
- **إيماءات سحب قابلة للتخصيص**: قم بتكوين إيماءات السحب لإغلاق النافذة المشروطة في اتجاهات مختلفة.
- **تحديد موضع مرن**: اختر مكان ظهور النافذة المشروطة على الشاشة (أعلى، وسط، أو أسفل).
- **رسوم متحركة مخصصة**: تحكم في كيفية ظهور واختفاء النافذة المشروطة بأنواع رسوم متحركة مختلفة.
- **يمكن إغلاقها عبر السحب**: يمكن للمستخدمين السحب لإغلاق النافذة المشروطة من أي اتجاه.
- **مدة رسوم متحركة قابلة للتعديل**: اضبط سرعة الرسوم المتحركة للنافذة المشروطة بدقة.
- **التعامل مع شريط الحالة**: خيار لإظهار النافذة المشروطة أسفل أو فوق شريط الحالة.
- **عرض نافذة قابل للتعديل**: خيار لتعيين عرض النافذة المشروطة لملء الشاشة أو التفاف المحتوى.

## الاستخدام

### تمكين الوسائط الغنية المشروطة

لتمكين ميزة **Modal Rich Media**، تحتاج إلى تكوينها في ملف `AndroidManifest.xml` الخاص بتطبيقك عن طريق إضافة إدخال البيانات الوصفية (metadata) التالي:

```xml
<meta-data
    android:name="com.pushwoosh.rich_media_type"
    android:value="Modal" />
```
## التكوين الافتراضي
يمكن تخصيص مظهر وسلوك النافذة المشروطة عن طريق تعيين تكوين افتراضي من خلال `RichMediaManager`. يسمح لك هذا التكوين بتحديد كيفية تصرف النافذة المشروطة، ومكان ظهورها، وكيفية إغلاقها، ونوع الرسوم المتحركة المستخدمة.

## خيارات التخصيص

### موضع عرض النافذة المشروطة

يمكنك تعيين موضع النافذة المشروطة على الشاشة باستخدام `setViewPosition()`. القيم المتاحة لهذا المعلم هي:

- `TOP`
- `CENTER` (افتراضي)
- `BOTTOM`

### أنواع الرسوم المتحركة للإغلاق

خصص كيفية إغلاق النافذة المشروطة باستخدام `setDismissAnimationType()`. الخيارات المتاحة تشمل:

- `FADE_OUT` (افتراضي)
- `SLIDE_UP`
- `SLIDE_DOWN`
- `SLIDE_LEFT`
- `SLIDE_RIGHT`
- `NONE`

### أنواع الرسوم المتحركة للعرض

حدد كيفية ظهور النافذة المشروطة باستخدام `setPresentAnimationType()`. الخيارات المتاحة هي:

- `FADE_IN`
- `SLIDE_UP`
- `SLIDE_RIGHT`
- `DROP_DOWN`
- `SLIDE_LEFT`
- `NONE` (افتراضي)

### تكوين إيماءة السحب

يمكن إغلاق النافذة المشروطة بإيماءات السحب في اتجاهات مختلفة باستخدام `setSwipeGesture()`. إيماءات السحب المتاحة تشمل:

- `UP`
- `LEFT`
- `RIGHT`
- `DOWN`
- `NONE` (افتراضي)

### مدة الرسوم المتحركة

تحكم في سرعة الرسوم المتحركة عن طريق تعيين `animationDuration()` بالمللي ثانية. يتم تحديد المدة كقيمة عددية صحيحة، تمثل الوقت بالمللي ثانية.

### عرض النافذة المشروطة

يمكن تعيين عرض النافذة المشروطة باستخدام `setWindowWidth()`، والذي يحدد ما إذا كانت النافذة ستأخذ العرض الكامل للشاشة أو ما يكفي فقط لتناسب المحتوى. القيم الممكنة هي:

- `FULL_SCREEN` (افتراضي)
- `WRAP_CONTENT`

### التعامل مع شريط الحالة

بشكل افتراضي، لن تغطي النافذة المشروطة شريط الحالة. للسماح للنافذة المشروطة بالظهور أسفل شريط الحالة، قم بتعيين خاصية `setStatusBarCovered()` إلى `true`.


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

### مثال على إيماءة السحب

<video src="/android-push-notifications-android-modal-rich-media-1.webm" title="نافذة Android مشروطة مع إيماءة السحب لليمين للإغلاق" autoplay loop muted playsinline />

```
        RichMediaManager.setDefaultRichMediaConfig(new ModalRichmediaConfig()
                .setStatusBarCovered(false)
                .setSwipeGesture(ModalRichMediaSwipeGesture.RIGHT)
                .setViewPosition(ModalRichMediaViewPosition.CENTER)
                .setDismissAnimationType(ModalRichMediaDismissAnimationType.SLIDE_RIGHT)
                .setPresentAnimationType(ModalRichMediaPresentAnimationType.SLIDE_FROM_LEFT)
                .setAnimationDuration(800)
                .setWindowWidth(ModalRichMediaWindowWidth.WRAP_CONTENT));
```
### مثال على الرسوم المتحركة المنسدلة

<video src="/android-push-notifications-android-modal-rich-media-2.webm" title="ظهور نافذة Android مشروطة مع رسوم متحركة منسدلة والسحب لأعلى للإغلاق" autoplay loop muted playsinline />

```
        RichMediaManager.setDefaultRichMediaConfig(new ModalRichmediaConfig()
                .setSwipeGesture(ModalRichMediaSwipeGesture.UP)
                .setViewPosition(ModalRichMediaViewPosition.TOP)
                .setDismissAnimationType(ModalRichMediaDismissAnimationType.SLIDE_UP)
                .setPresentAnimationType(ModalRichMediaPresentAnimationType.DROP_DOWN)
                .setAnimationDuration(1000));

```

### مثال على الوسائط الغنية في الأسفل

<video src="/android-push-notifications-android-modal-rich-media-3.webm" title="عرض نافذة Android مشروطة في الأسفل مع إغلاق بتلاشي ورسوم متحركة بالانزلاق لأعلى" autoplay loop muted playsinline />

```
        RichMediaManager.setDefaultRichMediaConfig(new ModalRichmediaConfig()
                .setSwipeGesture(ModalRichMediaSwipeGesture.DOWN)
                .setViewPosition(ModalRichMediaViewPosition.BOTTOM)
                .setDismissAnimationType(ModalRichMediaDismissAnimationType.FADE_OUT)
                .setPresentAnimationType(ModalRichMediaPresentAnimationType.SLIDE_UP)
                .setAnimationDuration(2000));
```

## الخلاصة
توفر ميزة الوسائط الغنية المشروطة لنظام Android طريقة سهلة ومرنة لتقديم محتوى HTML داخل تطبيقك دون إعاقة تجربة المستخدم. بفضل خيارات التخصيص الواسعة، بما في ذلك إيماءات السحب والرسوم المتحركة وتحديد الموضع وعرض النافذة، يمكنك إنشاء تفاعل سلس وجذاب لمستخدميك.