Android 8.0 (एपीआई लेवल 26) और इसके बाद के वर्शन पर, उपयोगकर्ताओं को आपके ऐप्लिकेशन में मौजूद विजेट को अपनी होम स्क्रीन पर पिन करने की सुविधा दी जा सकती है. अपने ऐप्लिकेशन में विजेट का प्रमोशन करना, उपयोगकर्ताओं का जुड़ाव बढ़ाने का एक बेहतरीन तरीका है. खास तौर पर, जब कोई उपयोगकर्ता किसी काम को पूरा करता है या आपके ऐप्लिकेशन में किसी सुविधा को बार-बार ऐक्सेस करता है.
पिन का अनुरोध करना
विजेट को पिन करने के लिए, GlanceAppWidgetManager क्लास के requestPinGlanceAppWidget तरीके का इस्तेमाल करें. Android के पुराने वर्शन पर चलने वाले ऐप्लिकेशन के लिए, यह फ़ंक्शन false दिखाता है. हालांकि, अगर अनुरोध को सिस्टम पर भेज दिया जाता है, तो यह true दिखाता है.
यहां एक उदाहरण दिया गया है कि पिन का अनुरोध कैसे किया जा सकता है:
@Composable fun AnInAppComposable() { val context = LocalContext.current val coroutineScope = rememberCoroutineScope() Button( onClick = { coroutineScope.launch { GlanceAppWidgetManager(context).requestPinGlanceAppWidget( receiver = MyWidgetReceiver::class.java, preview = MyWidget(), previewState = DpSize(245.dp, 115.dp) ) } } ) {} }
इस उदाहरण में, MyWidgetReceiver वह क्लास है जिसे विजेट के कॉलबैक मिलते हैं. साथ ही, MyWidget वह Glance विजेट है जिसे आपको पिन करना है. successCallback एक PendingIntent है, जो विजेट को पिन करने पर ट्रिगर होता है.
पिन के अनुरोध का जवाब मैनेज करना
जब कोई उपयोगकर्ता, पिन करने के अनुरोध वाले डायलॉग का जवाब देता है, तो आपके ऐप्लिकेशन को जवाब मिलता है. अगर उपयोगकर्ता अनुरोध स्वीकार कर लेता है, तो आपका विजेट उसकी होम स्क्रीन पर पिन हो जाता है. साथ ही, successCallback PendingIntent ट्रिगर हो जाता है. अगर उपयोगकर्ता अनुरोध को अस्वीकार कर देता है, तो कुछ नहीं होता.
यह ध्यान रखना ज़रूरी है कि successCallback सिर्फ़ तब ट्रिगर होता है, जब होम स्क्रीन पर विजेट को जोड़ दिया जाता है. अगर उपयोगकर्ता अनुरोध को अस्वीकार कर देता है या लॉन्चर, पिन करने की सुविधा के साथ काम नहीं करता है, तो यह ट्रिगर नहीं होता है.