Navigation Event एक लाइब्रेरी है. यह आपके ऐप्लिकेशन में सिस्टम-लेवल के नेविगेशन इवेंट को इंटिग्रेट करने के लिए, Kotlin Multiplatform (KMP) का समाधान उपलब्ध कराती है. इसे अलग-अलग प्लैटफ़ॉर्म पर नेविगेशन के निर्देशों को मैनेज करने के लिए, बुनियादी लेयर के तौर पर डिज़ाइन किया गया है.
वीडियो के विषय से जुड़े मुख्य कॉन्सेप्ट
नेविगेशन इवेंट सिस्टम, डिसपैचर-हैंडलर मॉडल पर आधारित है. इसका इस्तेमाल अक्सर पैरंट-चाइल्ड हैरारकी में किया जाता है, ताकि जटिल यूज़र इंटरफ़ेस (यूआई) स्ट्रक्चर को मैप किया जा सके. जैसे, Jetpack Compose में मौजूद यूज़र इंटरफ़ेस (यूआई) स्ट्रक्चर.
NavigationEventDispatcher
NavigationEventDispatcher एक सेंट्रल क्लास है. यह रजिस्टर किए गए सभी नेविगेशन इवेंट कंज्यूमर (NavigationEventHandler) को मैनेज करने और इवेंट के फ़्लो को व्यवस्थित करने के लिए ज़िम्मेदार है.
क्रम के हिसाब से सेट अप किए गए सिस्टम में, एक ही चेन में मौजूद सभी डिस्पैचर, एक NavigationEventProcessor शेयर करते हैं. यह ग्लोबल स्टेट को मैनेज करता है और पूरे ट्री में एक ही, यूनीफ़ाइड डिस्पैचिंग ऑर्डर को पक्का करता है.
NavigationEventHandler
NavigationEventHandler एक ऐब्स्ट्रैक्ट क्लास है. यह NavigationEventDispatcher से भेजे गए नेविगेशन इवेंट को स्वीकार करती है और उन्हें हैंडल करती है. यह नेविगेशन के जेस्चर के लाइफ़साइकल के अलग-अलग चरणों से जुड़े कॉलबैक के तरीकों के बारे में बताता है. जैसे, जेस्चर कब शुरू होता है, आगे बढ़ता है, पूरा होता है या रद्द होता है.
हैंडलर, इन इवेंट का जवाब दे सकते हैं. इससे उपयोगकर्ता की नेविगेशन कार्रवाइयों के जवाब में, यूज़र इंटरफ़ेस (यूआई) या ऐप्लिकेशन की स्थिति को अपडेट किया जा सकता है. एक डिसपैचर के साथ कई हैंडलर रजिस्टर किए जा सकते हैं. इन्हें प्राथमिकता और रजिस्ट्रेशन के क्रम के आधार पर शुरू किया जाता है.
NavigationEvent
NavigationEvent एक डेटा क्लास है, जिसमें नेविगेशन के जेस्चर की जानकारी होती है.
NavigationEventInfo
NavigationEventInfo एक ऐब्स्ट्रैक्ट क्लास है. यह नेविगेशन की स्थिति के बारे में जानकारी देती है.
NavigationEventInput
NavigationEventInput, उन कॉम्पोनेंट के लिए एक ऐब्स्ट्रैक्ट क्लास है जो नेविगेशन इवेंट जनरेट करते हैं और उन्हें डिसपैच करते हैं. यह नेविगेशन सिस्टम के "इनपुट" के तौर पर काम करता है. यह प्लैटफ़ॉर्म के हिसाब से होने वाले इवेंट (जैसे, सिस्टम के बैक जेस्चर या बटन क्लिक) को स्टैंडर्ड इवेंट में बदलता है. इन इवेंट को NavigationEventDispatcher पर भेजा जा सकता है.
नेविगेशन के लिए उपलब्ध निर्देश और ट्रिगर
नेविगेशन इवेंट सिस्टम को सिर्फ़ सिस्टम के बैक बटन के लिए नहीं बनाया गया है. इसके डिज़ाइन में, अलग-अलग प्लैटफ़ॉर्म पर नेविगेशन के कई तरीके और इनपुट के तरीके काम करते हैं.
इस्तेमाल किए जा सकने वाले निर्देश
अलग-अलग प्लैटफ़ॉर्म पर, नेविगेशन के लिए अलग-अलग निर्देश दिए जा सकते हैं:
प्लैटफ़ॉर्म |
वापस जाएं |
Up |
फ़ॉरवर्ड करें |
होम |
Android फ़ोन |
✅ |
✅ |
🚫 |
✅ |
Android टैबलेट |
✅ |
✅ |
🚫 |
✅ |
वेब (ब्राउज़र) |
✅ |
✅ |
✅ |
🚫 |
iOS (iPhone/iPad) |
✅ |
🚫 |
✅ |
✅ |
इस्तेमाल किए जा सकने वाले ट्रिगर
हर प्लैटफ़ॉर्म पर, इनपुट को मैनेज करने के लिए अलग-अलग तरीके इस्तेमाल किए जाते हैं:
ट्रिगर |
Android फ़ोन |
वेब (ब्राउज़र) |
iOS (iPhone/iPad) |
कीबोर्ड पर मौजूद 'वापस जाएं' बटन |
✅ वापस जाएं |
❓ |
✅ वापस जाएं |
सॉफ़्टवेयर में मौजूद 'वापस जाएं' बटन |
🚫 |
✅ वापस जाएं |
✅ वापस जाएं |
सॉफ़्टवेयर अप बटन |
✅ अप |
🚫 |
🚫 |
बाएं से किया गया जेस्चर |
✅ वापस जाएं |
❓ |
✅ वापस जाएं |
दाईं ओर से जेस्चर |
✅ वापस जाएं |
❓ |
✅ फ़ॉरवर्ड करें |
स्क्रीन पर सबसे नीचे से ऊपर की ओर स्वाइप करना |
✅ होम पेज |
🚫 |
✅ होम पेज |