# एंड्रॉइड मोडल रिच मीडिया

<Aside type="note" title="महत्वपूर्ण">
SDK 6.7.13 से उपलब्ध है
</Aside>

एंड्रॉइड मोडल रिच मीडिया सुविधा डेवलपर्स को उनके एप्लिकेशन के भीतर एक मोडल पॉपअप विंडो में HTML सामग्री प्रदर्शित करने की अनुमति देती है। यह पॉपअप अन्य UI तत्वों को ब्लॉक नहीं करता है और स्वाइप जेस्चर का उपयोग करके आसानी से खारिज किया जा सकता है। मोडल उपस्थिति, व्यवहार, एनिमेशन और बहुत कुछ के लिए कई अनुकूलन विकल्प प्रदान करता है, जो एक अत्यधिक लचीला उपयोगकर्ता अनुभव प्रदान करता है।

## मुख्य विशेषताएँ

- **नॉन-ब्लॉकिंग UI**: मोडल अन्य UI तत्वों के साथ इंटरैक्शन को ब्लॉक नहीं करता है।
- **अनुकूलन योग्य स्वाइप जेस्चर**: विभिन्न दिशाओं में मोडल को खारिज करने के लिए स्वाइप जेस्चर को कॉन्फ़िगर करें।
- **लचीली स्थिति**: चुनें कि मोडल स्क्रीन पर कहाँ दिखाई देगा (ऊपर, केंद्र, या नीचे)।
- **कस्टम एनिमेशन**: नियंत्रित करें कि मोडल विभिन्न एनीमेशन प्रकारों के साथ कैसे दिखाई देता है और गायब हो जाता है।
- **स्वाइप के माध्यम से खारिज करने योग्य**: उपयोगकर्ता किसी भी दिशा से मोडल को खारिज करने के लिए स्वाइप कर सकते हैं।
- **समायोज्य एनीमेशन अवधि**: मोडल एनिमेशन की गति को ठीक करें।
- **स्टेटस बार हैंडलिंग**: मोडल को स्टेटस बार के नीचे या ऊपर दिखाने का विकल्प।
- **समायोज्य विंडो चौड़ाई**: मोडल की चौड़ाई को पूरी स्क्रीन पर सेट करने या सामग्री को रैप करने का विकल्प।

## उपयोग

### मोडल रिच मीडिया को सक्षम करना

**मोडल रिच मीडिया** सुविधा को सक्षम करने के लिए, आपको इसे अपने एप्लिकेशन की `AndroidManifest.xml` फ़ाइल में निम्नलिखित मेटाडेटा प्रविष्टि जोड़कर कॉन्फ़िगर करना होगा:

```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="एंड्रॉइड मोडल जिसे खारिज करने के लिए दाईं ओर स्वाइप जेस्चर है" 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="एंड्रॉइड मोडल जो ड्रॉप-डाउन एनीमेशन के साथ दिखाई देता है और खारिज करने के लिए ऊपर स्वाइप करें" 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="एंड्रॉइड मोडल जो नीचे प्रदर्शित होता है जिसमें फेड आउट डिसमिसल और स्लाइड अप एनीमेशन है" autoplay loop muted playsinline />

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

## निष्कर्ष
एंड्रॉइड मोडल रिच मीडिया सुविधा उपयोगकर्ता अनुभव में बाधा डाले बिना आपके ऐप के अंदर HTML सामग्री प्रस्तुत करने का एक आसान और लचीला तरीका प्रदान करती है। इसके व्यापक अनुकूलन विकल्पों के साथ, जिसमें स्वाइप जेस्चर, एनिमेशन, पोजिशनिंग और विंडो की चौड़ाई शामिल है, आप अपने उपयोगकर्ताओं के लिए एक सहज और आकर्षक इंटरैक्शन बना सकते हैं।