При переходе бота в машинное состояние для заполнения пользователем анкеты, для каждого из состояний делаю кнопку отмены для выхода из машинного состояния, если пользователь передумал.
@dp.callback_query_handler(text='sendAcc')
async def command_register(callback : types.Message):
await FSMNewuser.firstname.set()
await bot.send_message(callback.from_user.id, 'Введите Ваше имя', reply_markup=cancel_kb)
# Выход из состояний
@dp.message_handler(state="*", commands="отмена")
@dp.message_handler(Text(equals="отмена", ignore_case=True), state="*")
async def cancel_handler(message: types.Message, state: FSMContext):
current_state = await state.get_state()
if current_state is None:
return
await state.finish()
messTxt = 'Вы отменили отправку анкеты, можете вернуться к этому шагу позже'
await message.reply(messTxt, reply_markup=first_kb)
Но эта кнопка отмены всегда скрывает стандартную клавиатуру телефона. И чтобы ее вызвать, нужно кликнуть по строке ввода. Так каждый раз. Можно ли сделать, чтобы первой появлялась стандартная клавиатура телефона, а ту вызывать уже кликом? Или в aiogram такого не предусмотрено?