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

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

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

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