基于Widget的定制化开发方案
获取代码仓库权限(更新中)
目录结构(更新中)
色彩方案
默认提供的组件并不引用样式文件,需要手动引入vars.less和index.module.less。 主题色请参考vars.less文件。
如何开发一个插件
插件系统向开发者提供了Widget Core中完整的能力,让开发者可以通过调用Core的API和数据,丰富Widget功能或实现复杂业务逻辑。
一个Widget插件应主要包括:
- 一个可以接收配置信息的JS函数
- 该函数返回一个接收Widget Core实例的JS函数
- 监听或发送事件以完成业务逻辑
以“初始化时插入一条hello world消息”的插件为例:
// 一个可以接收配置信息的JS函数
export default function myPlugin(config: any) {
const formatedConfig = Object.assign({
createdTime: Date.now()
}, config)
// 该函数返回一个接收Widget Core实例的JS函数
return function (context: ContextModel) {
// 监听或发送事件以完成业务逻辑
context.on('didInitial', function(context: ContextModel, payload: any) {
// e.g:
context.appendUserMessage({
_id: 'myPluginFirstMessage',
comp: ({text}) => <div>{text}</div>,
content: { text: 'hello world!' }
})
context.emit('myPluginGotInitialed', { foo: 'bar', formatedConfig })
// do something else
})
}
}
如需完成更多功能,可参考:
如何开发一个定制化项目
要开发一个定制化项目,可以从已有模板中挑选适合改造的,或使用基础组件重新开发一套。
改造已有模板
通过Fork已有模板进行二次开发。
- 初始化项目
yarn
- 本地调试
yarn dev
- 打包,打包后的文件会在dist文件夹中,将对应文件发布到项目所需地址。
yarn build
note
一般私有部署项目会放在客户的OSS或项目中,需要和客户沟通。
直接使用Widget Core开发
1. 创建项目:
可使用已有的项目或用yarn create创建项目,以vite模板为例:
# 使用vite的react-ts模板创建项目
yarn create vite --template react-ts
# 进入项目,项目默认名称为vite-project
cd ./vite-project
# 安装依赖包
yarn
# 获取Widget Core
yarn add lc-widget-core
更多设置可以参考创建第一个Vite项目。
2. 加载Widget Core:
你可以直接使用model.init来初始化model及其数据,并对外暴露可复用的初始化方法,实现接入不同用户或渠道等。
import { model } from 'lc-widget-core'
function initMyWidget({userInfo}) {
model.init({userInfo})
}
window.initMyWidget = initMyWidget
// init when you want it
initMyWidget({
name: 'ready_player_one'
})
3. 加载预置对话框
import { SDKComp } from 'lc-widget-core'
export default function() {
return <SDKComp />
}
4. 打包发布
将dist中的文件交给业务需要的地方即可
yarn build
预设模板
模板一
- 预览地址:Laiye Chatbot
模板二
- 预览地址:Laiye Chatbot