ใน 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 ไม่รองรับการปักหมุด