ใน Android 8.0 (ระดับ API 26) ขึ้นไป คุณสามารถอนุญาตให้ผู้ใช้ปักหมุดวิดเจ็ตของแอปในหน้าจอหลักภายในแอปได้ การโปรโมตวิดเจ็ตภายในแอปโดยตรงเป็นวิธีที่ยอดเยี่ยมในการเพิ่มการมีส่วนร่วมของผู้ใช้ โดยเฉพาะอย่างยิ่งหลังจากที่ผู้ใช้ทำภารกิจที่เกี่ยวข้องเสร็จสมบูรณ์ หรือเมื่อผู้ใช้เข้าถึงฟีเจอร์ในแอปของคุณซ้ำๆ
สร้างคำขอปักหมุด
หากต้องการเริ่มปักหมุดวิดเจ็ต ให้ใช้เมธอด requestPinGlanceAppWidget
จากคลาส GlanceAppWidgetManager สำหรับแอปที่ทำงานบน Android เวอร์ชันต่ำกว่า เมธอดนี้จะแสดงผลเป็น "เท็จ" อย่างไรก็ตาม หากส่งคำขอไปยังระบบสำเร็จ เมธอดนี้จะแสดงผลเป็น "จริง"
ต่อไปนี้เป็นตัวอย่างวิธีสร้างคำขอปักหมุด
@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 ที่ทริกเกอร์เมื่อปักหมุดวิดเจ็ตสำเร็จ
จัดการการตอบกลับคำขอปักหมุด
เมื่อผู้ใช้ตอบกลับกล่องโต้ตอบคำขอปักหมุด แอปของคุณจะได้รับการตอบกลับ หากผู้ใช้ยอมรับคำขอ ระบบจะปักหมุดวิดเจ็ตในหน้าจอหลักของผู้ใช้ และทริกเกอร์ PendingIntent ของ successCallback หากผู้ใช้ปฏิเสธคำขอ จะไม่มีสิ่งใดเกิดขึ้น
โปรดทราบว่าระบบจะทริกเกอร์ successCallback ก็ต่อเมื่อเพิ่มวิดเจ็ตลงในหน้าจอหลักสำเร็จเท่านั้น ระบบจะไม่ทริกเกอร์หากผู้ใช้ปฏิเสธคำขอหรือหาก Launcher ไม่รองรับการปักหมุด