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.