Menyematkan widget Sekilas dalam aplikasi

Dengan Android 8.0 (API level 26) dan yang lebih baru, Anda dapat mengizinkan pengguna menyematkan widget ke layar utama mereka dalam aplikasi Anda. Mempromosikan widget langsung dalam aplikasi Anda adalah cara yang bagus untuk meningkatkan interaksi pengguna, terutama setelah pengguna menyelesaikan tugas terkait, atau saat pengguna berulang kali mengakses fitur di aplikasi Anda.

Membuat Permintaan Pin

Untuk memulai penyematan widget, gunakan metode requestPinGlanceAppWidget dari class GlanceAppWidgetManager. Untuk aplikasi yang berjalan di versi Android yang lebih rendah, metode ini akan menampilkan nilai salah (false). Namun, jika permintaan berhasil dikirim ke sistem, metode ini akan menampilkan nilai benar (true).

Berikut adalah contoh cara membuat permintaan 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)
                )
            }
        }
    ) {}
}

Dalam contoh ini, MyWidgetReceiver adalah class yang menerima callback widget, dan MyWidget adalah widget Glance yang ingin Anda sematkan. successCallback adalah PendingIntent yang dipicu saat widget berhasil disematkan.

Menangani Respons Permintaan Pin

Saat pengguna merespons dialog permintaan pin, aplikasi Anda akan menerima respons. Jika pengguna menerima permintaan tersebut, widget Anda akan disematkan ke layar utama mereka, dan PendingIntent successCallback akan dipicu. Jika pengguna menolak permintaan tersebut, tidak ada yang terjadi.

Perlu diperhatikan bahwa successCallback hanya dipicu jika widget berhasil ditambahkan ke layar utama. Callback ini tidak dipicu jika pengguna menolak permintaan atau jika peluncur tidak mendukung penyematan.