Вам необходимо использовать метод прямой линии для бот-чата. Затем вы можете подписаться на действия и зарегистрировать обработчик кликов на кнопках. Вам необходимо создать объект прямой линии botConnection, а затем зарегистрировать его в приложении перед подпиской на действия.
const botConnection = new BotChat.DirectLine({
domain: params['domain'],
token: document.getElementById("directLineToken").value,
webSocket: params['webSocket'] && params['webSocket'] === 'true' // defaults to true
});
BotChat.App({
bot: bot,
locale: params['locale'],
resize: 'detect',
speechOptions: speechOptions,
user: user,
botConnection: botConnection
}, document.getElementById('BotChatGoesHere'));
Следующее отключит нажатую кнопку.
botConnection.activity$.subscribe(function (activity) {
$(".wc-message-wrapper[data-activity-id='" + activity.id + "'] .ac-pushButton").click(function () {
console.log($(this));
$(this).attr("disabled", "disabled");
});
});
Следующее отключит все кнопки в этом сообщении.
botConnection.activity$.subscribe(function (activity) {
$(".wc-message-wrapper[data-activity-id='" + activity.id + "']").on("click", ".ac-pushButton", function(event) {
event.preventDefault();
$(".wc-message-wrapper[data-activity-id='" + activity.id + "'] .ac-pushButton").attr("disabled", "disabled");
});
});
Чтобы скрыть эффект наведения на отключенных кнопках, добавьте в свой код следующее:
button[disabled] {
pointer-events: none;
}