ویجتهای Glance را درون برنامه پین کنید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
با Android 8.0 (سطح API 26) و بالاتر، میتوانید به کاربران اجازه دهید ویجتهای خود را به صفحه اصلی خود در برنامه خود پین کنید. تبلیغ ویجت ها به طور مستقیم در برنامه شما یک راه عالی برای افزایش تعامل کاربر است، به خصوص پس از اینکه کاربر یک کار مرتبط را انجام داد، یا زمانی که کاربر به طور مکرر به یک ویژگی در برنامه شما دسترسی پیدا می کند.
یک درخواست پین ایجاد کنید
برای شروع پین کردن ویجت، از متد requestPinGlanceAppWidget
از کلاس GlanceAppWidgetManager
استفاده کنید. برای برنامههایی که در نسخههای پایینتر اندروید اجرا میشوند، این مقدار false را برمیگرداند. اما اگر درخواست با موفقیت به سیستم ارسال شود، این مقدار true را برمیگرداند.
در اینجا مثالی از نحوه ایجاد درخواست پین آورده شده است:
@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)
)
}
}
) {}
}
در این مثال، MyWidgetReceiver
کلاسی است که تماس های ویجت را دریافت می کند و MyWidget
ویجت Glance است که می خواهید پین کنید. successCallback
یک PendingIntent
است که هنگامی که ویجت با موفقیت پین شود فعال می شود.
پاسخ درخواست پین را مدیریت کنید
وقتی کاربر به گفتگوی درخواست پین پاسخ می دهد، برنامه شما پاسخی دریافت می کند. اگر کاربر درخواست را بپذیرد، ویجت شما به صفحه اصلی او پین میشود و successCallback
PendingIntent
فعال میشود. اگر کاربر درخواست را رد کند، هیچ اتفاقی نمی افتد.
توجه به این نکته مهم است که successCallback
تنها در صورتی فعال می شود که ویجت با موفقیت به صفحه اصلی اضافه شود. اگر کاربر درخواست را رد کند یا راهانداز از پین کردن پشتیبانی نکند، فعال نمیشود.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-08-26 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-08-26 بهوقت ساعت هماهنگ جهانی."],[],[],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."]]