Автоматический переход от представления чата к странице ионного мобильного приложения при достижении шага в диалоге - PullRequest
0 голосов
/ 14 мая 2019

Я использую MS chatbot-framework V3 и встраиваю его в мое мобильное приложение ionic 3 через Прямая линия .

Я стремлюсь к достижению конца разговора.чат-бот завершается и переходит на другую страницу в мобильном приложении с передачей некоторых значений из чат-бота на эту страницу.

1 Ответ

0 голосов
/ 16 мая 2019

Когда вы достигнете конца своего разговора, вы можете отправить мероприятие для вашего клиента DirectLine с данными канала из разговора, и как только клиент получит событие, вы можете перейти к следующему представлению в вашем приложении с каналом.данные.См. Фрагменты кода ниже.

Отправка события перехода

В боте мы собираемся отправлять события обратного канала в DirectLine с данными, которые мы собрали в чате,По сути, вам просто нужно отправить действие со свойством типа, установленным на «событие», а атрибутом имени - на некоторое строковое значение - в этом случае мы будем использовать «переход».Данные диалога будут инкапсулированы в данные канала действия.

// End of conversation 

var reply = turnContext.Activity.CreateReply();

reply.Name = "transition";
reply.Type = "event";
reply.ChannelData = JObject.FromObject( new {
    user = new {
        name = "TJ",
        location = "Seattle"
    }
});

await turnContext.SendActivityAsync(reply, cancellationToken: cancellationToken);

Прослушивание события перехода

На стороне клиента мы собираемся отфильтроватьвходящие действия, чтобы прослушать наше «переходное» событие от бота.Когда он получен, вы можете перейти к следующему просмотру и передать данные канала, которые содержат данные разговора.

import { DirectLine } from 'botframework-directlinejs';

var directLine = new DirectLine({
    secret: "<DIRECTLINE_SECRET"
});

directLine.activity$
  .filter(activity => activity.type === 'event' && activity.name === 'transition')
  .subscribe( activity => { /* Initiate transition to next view with activity.channelData */ });

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...