Épingler des widgets Aperçu dans l'application

Avec Android 8.0 (niveau d'API 26) et versions ultérieures, vous pouvez permettre aux utilisateurs d'épingler vos widgets à leur écran d'accueil depuis votre application. La promotion des widgets directement dans votre application est un excellent moyen d'accroître l'engagement des utilisateurs, en particulier lorsqu'ils ont terminé une tâche associée ou lorsqu'ils accèdent à une fonctionnalité de votre application de manière répétée.

Créer une demande de code

Pour lancer l'épinglage d'un widget, utilisez la méthode requestPinGlanceAppWidget de la classe GlanceAppWidgetManager. Pour les applications exécutées sur des versions antérieures d'Android, cette méthode renvoie la valeur "false". Toutefois, si la requête est envoyée au système, la valeur renvoyée est "true".

Voici un exemple de création d'une demande de code :

@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)
                )
            }
        }
    ) {}
}

Dans cet exemple, MyWidgetReceiver est la classe qui reçoit les rappels du widget, et MyWidget est le widget Glance que vous souhaitez épingler. successCallback est un PendingIntent qui se déclenche lorsque le widget est épinglé.

Gérer la réponse à la demande de code

Lorsqu'un utilisateur répond à la boîte de dialogue de demande de code, votre application reçoit une réponse. Si l'utilisateur accepte la demande, votre widget est épinglé à son écran d'accueil et le PendingIntent successCallback est déclenché. Si l'utilisateur refuse la demande, rien ne se passe.

Il est important de noter que successCallback n'est déclenché que si le widget est correctement ajouté à l'écran d'accueil. Il ne se déclenche pas si l'utilisateur refuse la demande ou si le lanceur d'applications ne prend pas en charge l'épinglage.