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, вы можете просмотреть исходный код и перенести алгоритм на язык программирования по вашему выбору.

Ваше здоровье!

Хотите начать создавать USSD-приложения уже сегодня? Посетите https://africastalking.com/