Когда вы достигнете конца своего разговора, вы можете отправить мероприятие для вашего клиента 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 */ });
Надеюсь, это поможет!