Épingler des widgets Aperçu dans l'application
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
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.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/26 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/08/26 (UTC)."],[],[],null,["With Android 8.0 (API level 26) and higher, you can let users pin your\nwidgets to their home screen within your app. Promoting widgets directly within\nyour app is a great way to increase user engagement, especially after a\nuser completes a related task, or when a user repeatedly accesses a feature in\nyour app.\n\nCreate a Pin Request\n\nTo initiate widget pinning, use the [`requestPinGlanceAppWidget`](/reference/kotlin/androidx/glance/appwidget/GlanceAppWidgetManager#requestPinGlanceAppWidget(java.lang.Class,androidx.glance.appwidget.GlanceAppWidget,kotlin.Any,android.app.PendingIntent)) method\nfrom the [`GlanceAppWidgetManager`](/reference/kotlin/androidx/glance/appwidget/GlanceAppWidgetManager) class. For apps running on lower versions\nof Android, this returns false. However if the request is successfully sent\nto the system, this returns true.\n\nHere is an example of how you can create a pin request:\n\n\n```kotlin\n@Composable\nfun AnInAppComposable() {\n val context = LocalContext.current\n val coroutineScope = rememberCoroutineScope()\n Button(\n onClick = {\n coroutineScope.launch {\n GlanceAppWidgetManager(context).requestPinGlanceAppWidget(\n receiver = MyWidgetReceiver::class.java,\n preview = MyWidget(),\n previewState = DpSize(245.dp, 115.dp)\n )\n }\n }\n ) {}\n}https://github.com/android/snippets/blob/5673ffc60b614daf028ee936227128eb8c4f9781/compose/snippets/src/main/java/com/example/compose/snippets/glance/GlancePinAppWidget.kt#L44-L59\n```\n\n\u003cbr /\u003e\n\nIn this example, `MyWidgetReceiver` is the class that receives the widget's\ncallbacks, and `MyWidget` is the Glance widget you want to pin. The\n`successCallback` is a `PendingIntent` that is triggered when the widget is\nsuccessfully pinned.\n\nHandle the Pin Request Response\n\nWhen a user responds to the pin request dialog, your app receives a\nresponse. If the user accepts the request, your widget is pinned to their\nhome screen, and the `successCallback` `PendingIntent` is triggered. If the\nuser denies the request, nothing happens.\n\nIt is important to note that the `successCallback` is only triggered if the\nwidget is successfully added to the home screen. It is not triggered if the user\ndenies the request or if the launcher does not support pinning."]]