ऐप्लिकेशन में 'एक नज़र में' विजेट पिन करना

Android 8.0 (एपीआई लेवल 26) और इसके बाद के वर्शन पर, उपयोगकर्ताओं को अपने ऐप्लिकेशन में मौजूद विजेट को होम स्क्रीन पर पिन करने की सुविधा दी जा सकती है. विजेट का प्रमोशन सीधे तौर पर अपने ऐप्लिकेशन में करने से, उपयोगकर्ताओं की दिलचस्पी बढ़ाई जा सकती है. ऐसा खास तौर पर तब किया जा सकता है, जब कोई उपयोगकर्ता किसी टास्क को पूरा कर लेता है या जब वह आपके ऐप्लिकेशन में किसी सुविधा को बार-बार ऐक्सेस करता है.

पिन करने का अनुरोध करना

विजेट पिन करने की सुविधा शुरू करने के लिए, GlanceAppWidgetManager क्लास के requestPinGlanceAppWidget तरीके का इस्तेमाल करें. Android के पुराने वर्शन पर काम करने वाले ऐप्लिकेशन के लिए, यह फ़ंक्शन false दिखाता है. हालांकि, अगर अनुरोध सिस्टम को भेज दिया जाता है, तो यह सही वैल्यू दिखाता है.

पिन का अनुरोध करने का तरीका यहां बताया गया है:

@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 सिर्फ़ तब ट्रिगर होता है, जब विजेट को होम स्क्रीन पर जोड़ दिया जाता है. अगर उपयोगकर्ता अनुरोध को अस्वीकार करता है या लॉन्चर पिन करने की सुविधा के साथ काम नहीं करता है, तो यह ट्रिगर नहीं होता है.