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