ویجت‌های 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 تنها در صورتی فعال می شود که ویجت با موفقیت به صفحه اصلی اضافه شود. اگر کاربر درخواست را رد کند یا راه‌انداز از پین کردن پشتیبانی نکند، فعال نمی‌شود.