Botui

GitHub - botui/botui: 🤖 A JavaScript framework to create conversational UIs

配置

参考官方Github文档,现提供halo博客的解决方案,演示效果及其代码放在文末。

配置<head>

【后台-系统-其他设置-自定义内容页head】

<link rel="stylesheet" href="https://unpkg.com/botui/build/botui.min.css" />
<link rel="stylesheet" href="https:/unpkg.com/botui/build/botui-theme-default.css" />

配置内容页

在内容页键入如下即可应用

<div class="botui-app-container" id="example"><!-- id要对应 -->
  <bot-ui></bot-ui>
</div>
<script src="https://cdn.jsdelivr.net/vue/2.0.5/vue.min.js"></script>
<script src="https://unpkg.com/botui/build/botui.js"></script>
<script src="/themes/source/botui/example.js"><!-- 交互js文件位置 -->//
</script>

其中交互js文件位置请自行修改,希望及时备份防止更新时被误删。

交互js文档

接下来就是配置js交互文件了,这个还是得有一定coding基础。参考以下:
官方文档https://docs.botui.org/
Github例子https://github.com/botui/botui-examples

bug

在点击按钮等情况下会出现翻页情况

效果浏览

如未显示请刷新页面。
example1

//example1
var botui = new BotUI('example1');//name要与id对应

botui.message.add({
  content: 'Hello World from bot!'
});

botui.message.add({
  human: true,
  content: 'Hello World from human!'
});

example2

//info
var botui = new BotUI('info');

botui.message.add({
    content: '!'
});

botui.message
    .bot({
        delay: 1000,
        content: 'Hi, 你好呀!'
    }).then(function () {
        return botui.action.button({
            delay: 1000,
            action: [{
                text: 'Hi',
                value: 'hi'
        },{
                text: '......',
                value: 'no_reply'
        }]
    })
}).then(function (res) {
    if(res.value == 'hi') {
        showReminderInput();
    } else {
        botui.message.bot('屁颠屁颠逃走了');
    }
});

var showReminderInput = function () {
    botui.message
        .bot({
            delay: 500,
            content: '我叫Lil Troy,你叫什么呀?'
        }).then(function () {
            return botui.action.text({
                delay: 3000,
                action:{
                    placeholder:'键入你的名字'
                }
            })
        }).then(function (user_name){
            botui.message
                .bot({
                    delay: 500,
                    content: '你好呀,' + user_name.value +'。感谢你来看我!'
                });
        })
}