vk-mini-app-boilerplate
vk-mini-app-boilerplate copied to clipboard
Упрощение работы с window.history
Обратил внимание, что в роутере используется своеобразный хак window.history.pushState(null, null);
возможно проще и чище использовать чуть другой хак:
// Чистим первоначальное состояние
window.history.replaceState({}, '', '#init');
// Добавляем вторую запись в историю
window.history.pushState({}, '', '#router');
window.addEventListener('popstate', (event) => {
// После нажатия кнопки назад (#init), возвращаем историю на вторую запись
window.history.pushState({}, '', '#router-back');
goBack('Android');
});
Соответственно у нас всегда 2 записи в истории и мы спокойно обрабатываем нажатие кнопки назад не засоряя историю.
В этом подходе из самого роутера можно будет убрать все вызовы pushState
.