自定义控件开发说明
使用说明
本地开发(dev环境)
$ npm run dev
执行以上命令会启动一个node服务,端口号为9090(可以自己修改),
项目以/src/main.js为入口(典型的vue-cli所建项目),
在/src/pagess/index.vue中调用自己开发的Dui控件,可以在页面上看到自己开发的效果
打包上传(product环境)
$ npm run build
项目以/components/index.js为入口,打包开发的Dui控件到lib目录,
可以供DUI平台使用
/components/index.js中需要export开发的控件,例如:
// 把模块导出
export default{
helloWorld: HelloWorld,
customContentCard: CustomCard
}
DUI平台会使用开发者export的控件,例如上例的helloWorld和customContentCard。
目录结构
|- build/ ------------------------------- Vue Cli目录
|- config/ ------------------------------ Vue Cli目录
|- lib/ --------------------------------- 自定义控件打包目标文件夹,在DUI平台上传此目录的压缩包
|- src/ --------------------------------- 主要代码目录
|- components(重要)/ ----------------- 开发的Dui控件在这个目录中
|- index.js --------------------- 自定义控件资源入口
|- src/ ------------------------- 自定义控件代码目录
|- hello-world.vue ---------- 自定义控件hello-world源码
|- pages ---------------------------- 页面代码
|- index.vue -------------------- 主页面,开发时可以在页面中看效果
|- package.json ------------------------- 依赖包
DUI控件开发流程
$ git clone 项目代码
$ cd DUI-template/
$ npm install
$ npm run dev
浏览器中访问: http://localhost:9090/
根据实际情况开发自定义控件例如: /components/src/hello-world.vue
$ npm run build
打包/lib目录中的内容为lib.zip并上传至DUI平台
自定义控件资源包上传成功
接收显示数据
DUI平台在调用自定义控件时,会将对话返回Json中的dm.widget通过叫做message的prop传递给自定义控件,所以在开发自定义控件时,需要使用一个叫做message的prop来接受对话返回的数据。开发时可以在/pages/index.vue中写一些测试数据,通过message传递给自定义控件来测试和查看效果。
发送数据给Native
我们在window对象中写入了一个工具对象Dui,自定义控件可以直接调用window.Dui中的方法来给Native发送数据(Web端目前不能测试此功能)。例如:
if (!window.Dui) return
window.Dui.send({
'event': 'list.item.select',
'data': {
'index': 3
}
})
控件内容
控件名
DUI使用的控件名以export的名字为准,例如在控件中定义名称customCard:
export default{
name: 'customCard',
widgetType: 'content'
}
但是export为customContentCard:
import CustomCard from './src/custom-card'
export default{
customContentCard: CustomCard
}
则实际的控件名为customContentCard。
控件类型
控件中可以定义控件类型widgetType
export default{
name: 'customCard',
widgetType: 'content'
}
widgetType可以为下表中的几个有效值,对应几个类型的控件。
其它值都会被认为是Custom类型。
widgetType | 控件类型 |
---|---|
content | 图文卡片 |
list | 列表 |
web | 内嵌网页 |
media | 音乐播放 |
Demo下载
参考工程下载: 点此下载