TL; DR Используйте утилиту ussd-router для управления проблемами маршрутизации USSD. Установить на npm или просмотреть исходный код.
Пример использования: головная боль при создании USSD-приложений
Представьте, что вы создаете приложение USSD следующим образом:
Возможно, вы бы написали такой код:
Важная часть находится в потоке if-else, который позволяет вам добавить несколько экранов в приложение USSD:
Работает безупречно! Но что происходит, когда пользователь решает перейти к предыдущему экрану, нажав «0», или на главный экран, нажав «00»?
Ты угадал. Это вводит сомнительную цепочку операторов if-else:
Фу. Это одно огромное спагетти кода.
Имейте в виду, я даже не исследовал все пути, которые может выбрать пользователь во время навигации. Фактически, по мере того, как пользователь перемещается все глубже и глубже и решает перейти к предыдущему / домашнему экрану, это может стать слишком сложным для вас, чтобы даже справиться с логикой.
Решение
Как показано, вы можете решить обрабатывать маршрутизацию самостоятельно, но это добавит в ваш код ненужный шаблон.
Или вы можете использовать библиотеку
ussd-router
.
Библиотека ussd-router
поможет вам удалить шаблон, необходимый для обработки навигации в вашем приложении на предыдущий / домашний экран, и позволит вам расслабиться, сосредоточившись на своей бизнес-логике.
Таким образом, вы можете обновить свой код следующим образом:
И вам больше никогда не придется беспокоиться об управлении навигацией в вашем USSD-приложении.
Что, если я хочу использовать другое ключевое слово для перехода на домашний / предыдущий экран?
По умолчанию «0» - это ключевое слово, используемое для перехода на главный экран, а «00» - для перехода на предыдущий экран.
Если вы хотите изменить это, просто обновите это следующим образом:
const text1 = ussdRouter(rawText, ‘98’, ‘99’);
Здесь «98» - это ключевое слово, которое будет использоваться для перехода на главный экран, а «99» будет использоваться для перехода на предыдущий экран.
Получение библиотеки
Если вы используете node.js, вы можете установить пакет npm следующим образом:
npm i ussd-router
Если вы не используете node.js, вы можете просмотреть исходный код и перенести алгоритм на язык программирования по вашему выбору.
Ваше здоровье!