Библиотека MAX Bridge даёт мини-приложению набор системных возможностей — от сканера QR-кодов до запроса телефона пользователя. Среди них — пара методов для одной узкой задачи: предупредить пользователя, что при закрытии мини-приложения он рискует потерять введённые данные. Задача простая, а вот интерфейс двух методов оставляет разработчику ровно один способ действия — спросить и забыть.
Предупреждение, а не блокировка
В библиотеке MAX Bridge (dev.max.ru, раздел «Подтверждение закрытия мини-приложения») эта возможность описана двумя методами. Первый включает системное предупреждение:
Включает предупреждение о риске потерять заполненные данные, если закрыть мини-приложение. window.WebApp.enableClosingConfirmation(), dev.max.ru
Формулировка узкая: документация говорит именно про риск потерять заполненные данные, а не про закрытие мини-приложения как таковое. То есть это не запрет закрыть окно и не модальное окно с кнопками «Отмена» — по смыслу это тот же диалог браузера «Покинуть страницу? Введённые данные не сохранятся», знакомый по обычным веб-формам, только вызванный явно из кода мини-приложения, а не автоматикой браузера.
Выключить — тем же способом, каким включили
Второй метод — зеркальный, и документация описывает его той же фразой, поменяв только один глагол:
Выключает предупреждение о риске потерять заполненные данные, если закрыть мини-приложение. window.WebApp.disableClosingConfirmation(), dev.max.ru
Больше в разделе методов нет. Ни window.WebApp.enableClosingConfirmation(), ни window.WebApp.disableClosingConfirmation() ничего не возвращают, и рядом с ними нет третьего метода, который отдавал бы текущее состояние — включено предупреждение сейчас или нет. Если разработчику самому нужно знать, в каком состоянии он оставил переключатель, — хранить это придётся в переменной на своей стороне, а не спрашивать у MAX Bridge.
Что это значит для кода мини-приложения
Перед обоими методами документация ставит общую оговорку — она относится не к одному методу, а ко всей категории, в которую входит подтверждение закрытия:
Обратите внимание, что возможности из этой категории отправляют запрос приложению MAX в одностороннем порядке. dev.max.ru, раздел «Подтверждение закрытия мини-приложения»
«В одностороннем порядке» здесь буквально: вызов уходит в клиент MAX, и на этом задача метода заканчивается. Промиса, колбэка или события, которое подтвердило бы, что предупреждение действительно включилось, документация не описывает — их попросту нет ни у enableClosingConfirmation(), ни у disableClosingConfirmation(). Разработчик не может ни поймать ошибку, если вызов почему-то не сработал, ни программно проверить постфактум, в каком состоянии предупреждение находится прямо сейчас.
На практике это значит: единственный источник правды о состоянии — код самого мини-приложения. Если экран с формой вызывает enableClosingConfirmation() при открытии и disableClosingConfirmation() при сохранении, разработчику придётся самому следить, чтобы каждый enable рано или поздно был закрыт своим disable — MAX Bridge в этом не поможет и не подскажет, если пара разошлась.
Частые вопросы
Что делает enableClosingConfirmation() в MAX Bridge?
Как проверить, включено ли сейчас предупреждение о закрытии?
Приходит ли подтверждение, что MAX включил предупреждение?
От чего именно предупреждает MAX при закрытии мини-приложения?
Развивайте свой канал в MAX
Каталог maxofficial.ru приводит подписчиков из поиска, а VIP-размещение и продвижение ускоряют рост.








