我有一个带有多个卡片和按钮的 HeroCard 轮播。如果在显示轮播后立即点击这些按钮,则会正确路由。但是,如果在对话的稍后阶段点击它们,则路由不起作用。
如果按钮被不按顺序轻按(即在显示轮播后的某个时间而不是立即轻按),我如何才能让按钮正确路由对话?
我有一个带有多个卡片和按钮的 HeroCard 轮播。如果在显示轮播后立即点击这些按钮,则会正确路由。但是,如果在对话的稍后阶段点击它们,则路由不起作用。
如果按钮被不按顺序轻按(即在显示轮播后的某个时间而不是立即轻按),我如何才能让按钮正确路由对话?
我想到了。在 Bot Builder 的 3.1 版中,我们能够使用 Regex 侦听与短语的匹配 - 请参阅IntentDialog。使用此功能,用户可以在对话流中的任何位置键入特定阶段的上下文(如“帮助”),并可以重定向到该路线。
当点击按钮时,我们可以使用相同的方法。需要注意的重要一点是,点击按钮时返回的消息不是用户看到的字符串。相反,它是按钮希望指向的路线。
因此,您可以使用 Regex 侦听路由,然后重定向到该路由。例如:
var intents = new builder.IntentDialog();
bot.dialog('/', intents);
intents.matches(/^theRouteYourButtonIsDirectingTo\//i, [
function (session) {
// Whatever you want to return
},
]);