В Android 8.0 (уровень API 26) и более поздних версиях вы можете разрешить пользователям закреплять виджеты на главном экране из приложения. Продвижение виджетов непосредственно в приложении – отличный способ повысить вовлеченность пользователей, особенно после того, как пользователь выполняет связанную задачу или когда пользователь неоднократно обращается к функции в вашем приложении.
Как создать запрос на закрепление
Чтобы запустить закрепление виджета, используйте метод requestPinGlanceAppWidget из класса GlanceAppWidgetManager. Для приложений, работающих на более ранних версиях Android, возвращается значение 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, который запускается, когда виджет успешно закреплен.
Обработка ответа на запрос PIN-кода
Когда пользователь отвечает на запрос, ваше приложение получает ответ. Если пользователь примет запрос, виджет будет закреплен на главном экране и сработает successCallback PendingIntent. Если пользователь отклонит запрос, ничего не произойдет.
Важно отметить, что successCallback срабатывает, только если виджет успешно добавлен на главный экран. Оно не срабатывает, если пользователь отклоняет запрос или панель запуска не поддерживает закрепление.