ویجت‌های Glance را درون برنامه پین ​​کنید

با اندروید ۸.۰ (سطح API ۲۶) و بالاتر، می‌توانید به کاربران اجازه دهید ویجت‌های شما را به صفحه اصلی خود در برنامه پین ​​کنند. تبلیغ مستقیم ویجت‌ها در برنامه شما، راهی عالی برای افزایش تعامل کاربر است، به خصوص پس از اینکه کاربر یک کار مرتبط را انجام می‌دهد یا وقتی کاربر بارها و بارها به یک ویژگی در برنامه شما دسترسی پیدا می‌کند.

درخواست پین ایجاد کنید

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