Épingler des widgets Aperçu dans l'application

Avec Android 8.0 (niveau d'API 26) ou version ultérieure, vous pouvez permettre aux utilisateurs d'épingler vos widgets sur leur écran d'accueil depuis votre application. Promouvoir des widgets directement dans votre application est un excellent moyen d'augmenter l'engagement des utilisateurs, en particulier après qu'un utilisateur a effectué une tâche associée ou lorsqu'un utilisateur accède à plusieurs reprises à une fonctionnalité de votre application.

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, la valeur "false" est renvoyée. Toutefois, si la requête est envoyée au système, la valeur "true" est renvoyée.

Voici un exemple de création d'une requête d'épinglage :

@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 secret

Lorsqu'un utilisateur répond à la boîte de dialogue de demande d'épinglage, 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 bien ajouté à l'écran d'accueil. Il n'est pas déclenché si l'utilisateur refuse la demande ou si le lanceur d'applications n'est pas compatible avec l'épinglage.