0

複数のカードとボタンを備えた HeroCard カルーセルがあります。カルーセルが表示された直後にこれらのボタンをタップすると、正しくルーティングされます。ただし、ダイアログの後の段階でタップされた場合、ルーティングは機能しません。

ボタンが順不同でタップされた場合 (つまり、カルーセルが表示された直後以外にタップされた場合)、ダイアログを正しくルーティングするボタンを取得するにはどうすればよいですか?

4

1 に答える 1

0

私はそれを考え出した。Bot Builder のバージョン 3.1 では、正規表現を使用してフレーズの一致をリッスンする機能があります - IntentDialogを参照してください。これを使用すると、ダイアログ フローの任意の場所で、ユーザーは特定のフェーズ (「ヘルプ」など) を文脈から外して入力し、そのルートにリダイレクトできます。

ボタンがタップされたときも同じ方法を使用できます。注意すべき重要なことは、ボタンがタップされたときに返されるメッセージは、ユーザーに表示される文字列ではないということです。代わりに、ボタンが誘導することを望んでいるルートです。

したがって、正規表現を使用してルートをリッスンし、そのルートにリダイレクトできます。例えば:

var intents = new builder.IntentDialog();
bot.dialog('/', intents);

intents.matches(/^theRouteYourButtonIsDirectingTo\//i, [
    function (session) {

        // Whatever you want to return

    },
]);
于 2016-10-18T03:01:28.067 に答える