Опция автозаполнения в рамках MS Bot - PullRequest
0 голосов
/ 14 мая 2018

Есть ли в любом случае отображение опции автозаполнения в эмуляторе бота или любом другом канале с использованием MS Bot Framework.Если нет, можете ли вы предложить какую-либо другую альтернативу?

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Я также использовал HTML5 datalist для автоматического предложения. Здесь я делюсь своим примером кода.

HTML-код:

<div id="bot"></div> //bot directline div
<datalist id="mylists"></datalist> //(suggestion list)
            <template id="resultstemplate">
                <option>Ray0</option>
                <option>Ray1</option>
                <option>Ray2</option>
                <option>Ray3</option>
                <!--etc ... similar options skipped -->
                <option>Ray2123</option>
                <option>Ray3123</option>
            </template>
        </div>

Код JS

$("input.wc-shellinput").attr("list", "mylists"); //append data list option with input box
var search = document.querySelector('.wc-shellinput'); // chat input box class(.wc-shellinput)
        var results = document.querySelector('#mylists'); // suggestion list 

        // below query for showing suggestion list in the chat & with limited count or otherwise large suggestion list will appear in the chat bot 
        var templateContent = document.querySelector('#resultstemplate').content;
        search.addEventListener('keyup', function handler(event) {
            while (results.children.length) results.removeChild(results.firstChild);
            var inputVal = new RegExp(search.value.trim(), 'i');
            var set = Array.prototype.reduce.call(templateContent.cloneNode(true).children, function searchFilter(frag, item, i) {
                if (inputVal.test(item.textContent) && frag.children.length < 6) frag.appendChild(item);
                return frag;
            }, document.createDocumentFragment());
            results.appendChild(set);
        });
0 голосов
/ 15 мая 2018

Есть ли в любом случае отображение опции автозаполнения в эмуляторе бота или любом другом канале с использованием MS Bot framework

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

HTML-код:

<div id="bot"></div>
<div>
    <datalist id="mylists">
        <option value="Hello World">
        <option value="Azure">
        <option value="botframework">
        <option value="LUIS">
        <option value="QNA">
    </datalist>
</div>

JS код:

<script>
    BotChat.App({
        directLine: { secret: "{directline_secret}" },
        user: { id: 'You'},
        bot: { id: '{bot_id}' },
        resize: 'detect'
    }, document.getElementById("bot"));

    $(function () {
        //in this sample, I use a static datalist

        //you can also retrieve data from external storage, such as database, 
        //and dynamically generate datalist based on records 
        //then append dynamic datalist to web page

        //attach the datalist to webchat input box

        $("input.wc-shellinput").attr("list", "mylists");

    })
</script>

Результат теста:

enter image description here

...