Przypinanie widżetów Szybki podgląd w aplikacji
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
W Androidzie 8.0 (API na poziomie 26) i nowszym możesz zezwolić użytkownikom na przypinanie widżetów do ekranu głównego w aplikacji. Promowanie widżetów bezpośrednio w aplikacji to świetny sposób na zwiększenie zaangażowania użytkowników, zwłaszcza po wykonaniu przez nich powiązanego zadania lub gdy użytkownik wielokrotnie korzysta z funkcji w aplikacji.
Tworzenie prośby o kod PIN
Aby zainicjować przypinanie widżetu, użyj metody requestPinGlanceAppWidget
z klasy GlanceAppWidgetManager
. W przypadku aplikacji działających na starszych wersjach Androida zwraca wartość false. Jeśli jednak żądanie zostanie wysłane do systemu, funkcja zwróci wartość „true”.
Oto przykład tworzenia prośby o kod PIN:
@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)
)
}
}
) {}
}
W tym przykładzie MyWidgetReceiver
to klasa, która odbiera wywołania zwrotne widżetu, a MyWidget
to widżet Glance, który chcesz przypiąć. successCallback
to PendingIntent
, który jest wywoływany, gdy widżet zostanie przypięty.
Obsługa odpowiedzi na prośbę o PIN
Gdy użytkownik odpowie na prośbę o kod PIN, aplikacja otrzyma odpowiedź. Jeśli użytkownik zaakceptuje prośbę, widżet zostanie przypięty do jego ekranu głównego i wywoła się zdarzenie successCallback
PendingIntent
. Jeśli użytkownik odrzuci prośbę, nic się nie stanie.
Warto pamiętać, że zdarzenie successCallback
jest wywoływane tylko wtedy, gdy widżet zostanie dodany do ekranu głównego. Nie jest wywoływana, jeśli użytkownik odrzuci prośbę lub jeśli program uruchamiający nie obsługuje przypinania.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-08-26 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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."]]