הצמדת ווידג'טים של Glance באפליקציה

ב-Android 8.0 (רמת API‏ 26) ואילך, אתם יכולים לאפשר למשתמשים להצמיד את הווידג'טים שלכם למסך הבית שלהם מתוך האפליקציה. קידום ווידג'טים ישירות בתוך האפליקציה הוא דרך מצוינת להגביר את רמת המעורבות של משתמשים, במיוחד אחרי שהמשתמשים משלימים משימה קשורה, או כשהם ניגשים שוב ושוב לתכונה באפליקציה.

יצירת בקשה לקוד אימות

כדי להתחיל את ההצמדה של הווידג'ט, משתמשים ב-method‏ requestPinGlanceAppWidget מהמחלקה GlanceAppWidgetManager. באפליקציות שפועלות בגרסאות ישנות יותר של 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 היא המחלקה שמקבלת את הקריאות החוזרות (callbacks) של הווידג'ט, ו-MyWidget הוא הווידג'ט של Glance שרוצים להצמיד. ה-successCallback הוא PendingIntent שמופעל כשהווידג'ט מוצמד בהצלחה.

טיפול בתגובה לבקשת קוד אימות

כשהמשתמש מגיב לתיבת הדו-שיח של בקשת ההצמדה, האפליקציה מקבלת תגובה. אם המשתמש מאשר את הבקשה, הווידג'ט מוצמד למסך הבית שלו, והאירוע successCallback PendingIntent מופעל. אם המשתמש דוחה את הבקשה, לא קורה כלום.

חשוב לציין שהאירוע successCallback מופעל רק אם הווידג'ט נוסף בהצלחה למסך הבית. הוא לא מופעל אם המשתמש דוחה את הבקשה או אם מרכז האפליקציות לא תומך בהצמדה.