iikoFront API SDK

Навигация в заказ по инициативе плагина (продолжение)

[ v8  ]

В API V8 сделали второй шаг к возможности показывать диалоговые окна и навигироваться в заказ по инициативе плагина с разных экранов.

В одной из предыдущих новостей мы рассказали о способах навигации в заказ по плагинным кнопкам или с экрана редактирования заказа. Теперь такая навигация поддерживается и с других экранов:

Чтобы понимать, что мы находимся на экране, который поддерживает работу с UI, нужно подписаться на событие ScreenChanged.

Если экран, пришедший в событие, является одним из перечисленных выше экранов, можно вызвать новый метод TryExecuteUiOperation, в который нужно передать ссылку на callback, который iikoFront вызовет, как только появится такая возможность. При бездействии это произойдёт немедленно, а если в этот момент выполняются другие операции, то callback будет вызван сразу по их завершении. В любом случае, метод TryExecuteUiOperation вернёт управление после вызова callback’а. Если callback выбросит исключение, оно вылетит из TryExecuteUiOperation. В случае, если в момент вызова TryExecuteUiOperation выполнялась другая операция, которая в итоге привела к выходу с текущего экрана, callback не удастся вызвать ни сразу, ни отложенно, а метод TryExecuteUiOperation сгенерирует исключение OperationCanceledException.

На время выполнения callback’а показывается прогрессбар. В callback будет передан IViewManager с возможностью показывать диалоговые окна и менять текст на прогрессбаре, а также с возможностью навигироваться в заказ.

Навигация возможна только в открытый заказ. При вызове метода проверяются соответствующие права текущего залогиненного на фронте сотрудника. Такие же, какие проверяются при навигации путем нажатия кнопок на самом фронте. Навигация в заказ доставки пока невозможна.