ปักหมุดวิดเจ็ต Glance ในแอป

ใน Android 8.0 (API ระดับ 26) ขึ้นไป คุณสามารถอนุญาตให้ผู้ใช้ปักหมุดวิดเจ็ตของคุณไว้ในหน้าจอหลักภายในแอปได้ การโปรโมตวิดเจ็ตภายในแอปโดยตรงเป็นวิธีที่ยอดเยี่ยมในการเพิ่มการมีส่วนร่วมของผู้ใช้ โดยเฉพาะหลังจากที่ผู้ใช้ทํางานที่เกี่ยวข้องเสร็จสมบูรณ์ หรือเมื่อผู้ใช้เข้าถึงฟีเจอร์ในแอปของคุณซ้ำๆ

สร้างคำขอ PIN

หากต้องการเริ่มการปักหมุดวิดเจ็ต ให้ใช้วิธี requestPinGlanceAppWidget จากคลาส GlanceAppWidgetManager สำหรับแอปที่ทำงานใน Android เวอร์ชันต่ำกว่า ฟังก์ชันนี้จะแสดงผลเป็นเท็จ แต่หากส่งคำขอไปยังระบบสำเร็จ ฟังก์ชันนี้จะแสดงค่าเป็นจริง

ตัวอย่างวิธีสร้างคำขอ 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)
                )
            }
        }
    ) {}
}

ในตัวอย่างนี้ MyWidgetReceiver คือคลาสที่รับการเรียกกลับของวิดเจ็ต และ MyWidget คือวิดเจ็ต Glance ที่คุณต้องการปักหมุด successCallback คือ PendingIntent ที่ทริกเกอร์เมื่อปักหมุดวิดเจ็ตสำเร็จ

จัดการการตอบกลับคำขอ PIN

เมื่อผู้ใช้ตอบกลับกล่องโต้ตอบคำขอ PIN แอปของคุณจะได้รับการตอบกลับ หากผู้ใช้ยอมรับคำขอ ระบบจะปักหมุดวิดเจ็ตของคุณไว้ที่หน้าจอหลักของผู้ใช้ และจะทริกเกอร์ successCallback PendingIntent หากผู้ใช้ปฏิเสธคำขอ ระบบจะไม่ดำเนินการใดๆ

โปรดทราบว่าระบบจะทริกเกอร์ successCallback ก็ต่อเมื่อเพิ่มวิดเจ็ตลงในหน้าจอหลักสำเร็จแล้วเท่านั้น ระบบจะไม่ทริกเกอร์หากผู้ใช้ ปฏิเสธคำขอหรือหาก Launcher ไม่รองรับการปักหมุด