mwChatView
来自于:MW模块工作室立即使用
open close show hide getIndex getDataByIndex reloadData deleteItem updateItem insertItem appendData scrollToBottom scrollToIndex stopLoadData setAttr
概述
mwChatView 模块封装了一个聊天列表控件;开发者可自定义列表的数据源,及列表的样式,支持列表项的增、删、改、查,顶部追加数据。 本模块提供了测试案例 测试DEMO地址, 在使用中碰到的任何问题都可以向apicloud发工单,我们将不断改进和优化。
open
打开
open({params}, callback(ret, err))
params
rect:
- 类型:JSON 对象
- 描述:(可选项)模块的位置及尺寸
- 内部字段:
{
x: 0, //数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w: 320, //数字类型;模块的宽度;默认值:所属的 Window 或 Frame 的宽度
h: 480 //数字类型;模块的高度;默认值:所属的 Window 或 Frame 的高度
}
data:
- 类型:数组
- 描述:列表的数据源,开发者可以自定义唯一的键值对信息(如:uid: ‘1001’),供 getIndex 使用
- 内部字段:
[{
iconImage: "", //(可选项)字符串类型;头像的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
senderName:"", //(可选项)字符串类型;发送者名称
text: "", //(可选项)字符串类型;发送的内容
image:{
imagePath: 'widget://res/img/apicloud.png',//(可选项)字符串类型;列表项的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
width:400,// 图片宽度
height:300,//图片高度
},
type:'img',// (可选项)字符串类型;img为图片类型,text 为普通文字类型,tip 为小字提示类型
isSender:false,// (可选项)布尔类型;是否是发送者,若不传则为 false
sendTime:'',//(可选项)字符串类型;列表分组时间戳,若不传则不显示分组标题
status:0, //(可选项)0:已发送 1:发送中 2:发送失败,默认为 0
imageProgress:100 // image 类型的上传进度(可选项)1-100, 小于零时不显示,默认为 -1,type 为image 的时候起效 上传进度可用 updateItem 进行更新
}]
styles:
- 类型:JSON 对象
- 描述:(可选项)模块各部分的样式。 注:BubbleImage 为必传项且所指路径不能为空
- 内部字段:
{
BgColor:'#272727' , //(可选项)字符串类型;item的背景颜色,支持 rgb、rgba、#;默认:'#272727'
bottom: 底部预留输入框空隙
receiveStyle: { //(可选项)JSON对象; isSender:false 列表项的样式
iconSize: 50, //(可选项)数字类型;列表项头像的宽度;默认:列表项的高度减去10px
iconCorner: 25, //(可选项)数字类型;列表项头像的圆角大小;默认:0
iconRound:true, //(可选项)布尔类型:头像是否为圆形,imageRound 为 true,则 imageCorner 不起效
iconplaceholderImg: '', //(可选项)字符串类型;列表项头像的占位图路径(本地路径,fs://、widget://),默认:APICloud 图标
nameTopMargin:5, //(可选项)数字类型;列表项的名字的上边距;默认:5(跟time的下边距相同)
nameBottomMargin:5, //(可选项)数字类型;列表项的名字的下边距;默认:5(跟badge的下边距相同)
nameFont: 12, //(可选项)数字类型;列表项名字文字大小;默认:12
nameColor: '#000', //(可选项)字符串类型;列表项名字文字颜色,支持 rgb,rgba,#;默认:'#000000'
textFont: 20, //(可选项)数字类型;列表项子发送文字大小;默认:12
textColor: '#EAEAEA', //(可选项)字符串类型:列表项子发送文字颜色,支持 rgb、rgba、#;默认:'#000000'
timeColor: '#000', //(可选项)字符串类型;时间标签的文字颜色,支持 rgb、rgba、#;默认:'#000000'
timeSize: 10, //(可选项)数字类型;时间标签文字大小;默认:10
BubbleImage:@"", //(必传项)列表项消息气泡背景图(本地路径,widget://),默认:SDK 默认图片
maxWidth:200, //(必传项)内容最大宽度
imageBgColor:'#EAEAEA',//type 为img 图片背景色
textRecognitionColor:"#4cc518", // type 为text类型时自动识别文字中的链接颜色
},
sendStyle:{ //(可选项)JSON对象;列表项 isSener 为 true 的样式
iconSize: 50, //(可选项)数字类型;列表项头像的宽度;默认:列表项的高度减去10px
iconCorner: 25, //(可选项)数字类型;列表项头像的圆角大小;默认:0
iconRound:true, //(可选项)布尔类型:头像是否为圆形,imageRound 为 true,则 imageCorner 不起效
iconplaceholderImg: '',//(可选项)字符串类型;列表项头像的占位图路径(本地路径,fs://、widget://),默认:APICloud 图标
nameFont: 12, //(可选项)数字类型;列表项名字文字大小;默认:12
nameColor: '#000', //(可选项)字符串类型;列表项名字文字颜色,支持 rgb,rgba,#;默认:'#000000'
textFont: 12, //(可选项)数字类型;列表项子发送文字文字大小;默认:12
textColor: '#000', //(可选项)字符串类型:列表项子发送文字颜色,支持 rgb、rgba、#;默认:'#000000'
timeColor: '#000', //(可选项)字符串类型;时间标签的文字颜色,支持 rgb、rgba、#;默认:'#000000'
timeSize: 10, //(可选项)数字类型;时间标签文字大小;默认:10
BubbleImage:@"",//(必传项)列表项消息气泡背景图(本地路径,widget://),默认:SDK 默认图片
maxWidth:200,//(必传项)内容最大宽度
imageBgColor:'#FFFFFF',//type 为img 图片背景色
textRecognitionColor:"#4cc518",// type 为text类型时自动识别文字中的链接颜色
},
tipStyle:{
textColor: '#bbbbbb',
MaxWidth:150,
textFont: 12,
textBgColor:'eeeeee',
},
}
注意: BubbleImage 为必传字段且路径所指图片不能为空
fixedOn:
- 类型:字符串类型
- 描述:(可选项)模块视图添加到指定 frame 的名字(只指 frame,传 window 无效)
- 默认:模块依附于当前 window
showScrollBar:
- 类型:布尔
- 描述:(可选项)是否显示滚动条
- 默认:true
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
index: 0, //数字类型;列表项的索引
eventType: 'show', //字符串类型;事件类型
//取值范围如下:
//show(模块加载成功)
//getMoreData(加载更多数据)
//linkClick(点击文字类型中的链接)
//imageClick(点击发送图片)
//iconClick(点击头像)
//errorClick(错误图标点击)
//viewDidScroll (页面滚动 ios 有效)
link:"www.baidu.com", //字符型:链接的内容(长按链接内容会返回)
}
示例代码
var MWChatView = api.require('mwChatView');
MWChatView({
rect: {
x: 0,
y: 0,
w: api.winWidth,
h: api.frameHeight
},
data: [{
iconImage: "", //(可选项)字符串类型;头像的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
senderName:"", //(可选项)字符串类型;发送者名称
text: "", //(可选项)字符串类型;发送的内容
image:{
imagePath: 'widget://res/img/apicloud.png',//(可选项)字符串类型;列表项的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
width:400,// 图片宽度
height:300,//图片高度
},
type:'img',// (可选项)字符串类型;img为图片类型,text 为普通文字类型,tip 为小字提示类型
isSender:false,// (可选项)布尔类型;是否是发送者,若不传则为 false
sendTime:'',//(可选项)字符串类型;列表分组时间戳,若不传则不显示分组标题
status:0, //(可选项)0:已发送 1:发送中 2:发送失败,默认为 0
imageProgress:100//type 为img 类型的上传进度(可选项)1-100, 小于零时不显示,默认为 -1,type 为image 的时候起效
}],
styles: {
BgColor:'#272727' , //(可选项)字符串类型;item的背景颜色,支持 rgb、rgba、#;默认:'#272727'
bottom: 底部预留输入框空隙
receiveStyle: {},
sendStyle:{}
},
fixedOn: api.frameName
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
close
关闭数据列表模块
close()
示例代码
var MWChatView = api.require('mwChatView');
MWChatView.close();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
show
显示
show()
示例代码
var MWChatView = api.require('mwChatView');
MWChatView.show();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
hide
隐藏
hide()
示例代码
var MWChatView = api.require('mwChatView');
MWChatView.hide();
可用性
iOS系统,Android系统
getIndex
根据开发者自定义的唯一标识(open 接口的 data 参数中自定义的唯一标识)查找列表项对应的数据
getIndex({params}, callback(ret, err))
params
key:
- 类型:字符串
- 描述:调用 open 接口时,data 参数传入的开发者自定义的唯一标识的 key
value:
- 类型:字符串
- 描述:调用 open 接口时,data 参数传入的开发者自定义的唯一标识的 value
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
index: 0, //数字类型;当前列表项的索引
data: [] //数组类型;当前列表项的数据,内部字段与 open 时的 data 参数一致
}
示例代码
var MWChatView = api.require('mwChatView');
MWChatView.getIndex({
key: 'uid',
value: '1001'
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
getDataByIndex
根据列表项的索引获取对应的数据
getDataByIndex({params}, callback(ret))
params
index:
- 类型:数字
- 描述:(可选项)列表项的索引
- 默认值:0
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
data: [] //数组类型;当前列表项的数据,内部字段与 open 时的 data 参数一致
}
示例代码
var MWChatView = api.require('mwChatView');
MWChatView.getDataByIndex({
index: 0
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
reloadData
刷新列表数据
reloadData({params}, callback(ret))
params
data:
- 类型:数组
- 描述:(可选项)列表的数据源,若不传或传空,仅收起下拉刷新组件
- 内部字段:
[{
iconImage: '', //(可选项)字符串类型;头像的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
senderName: '', //(可选项)字符串类型;发送者名称
text: '', //(可选项)字符串类型;发送的内容
image:{
imagePath: 'widget://res/img/apicloud.png',//(可选项)字符串类型;列表项的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
width:400, 图片宽度
height:300,图片高度
},
type:'image', // (可选项)字符串类型;image为图片类型,text 为普通文字类型,tip 为小字提示类型
isSender:false, // (可选项)布尔类型;是否是发送者,若不传则为 false
timestamp:'', //(可选项)字符串类型;列表分组时间戳,若不传则不显示分组标题
}]
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔型;true||false
}
示例代码
var MWChatView = api.require('mwChatView');
MWChatView.reloadData({
data: [{
iconImage: '', //(可选项)字符串类型;头像的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
senderName: '', //(可选项)字符串类型;发送者名称
text: '', //(可选项)字符串类型;发送的内容
image:{
imagePath: 'widget://res/img/apicloud.png',//(可选项)字符串类型;列表项的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
width:400, 图片宽度
height:300,图片高度
},
type:'image', // (可选项)字符串类型;image为图片类型,text 为普通文字类型,tip 为小字提示类型
isSender:false, // (可选项)布尔类型;是否是发送者,若不传则为 false
timestamp:'', //(可选项)字符串类型;列表分组时间戳,若不传则不显示分组标题
}]
}, function(ret) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
deleteItem
根据索引删除某一条列表的数据
deleteItem({params}, callback(ret))
params
index:
- 类型:数字
- 描述:(可选项)数据列表的索引
- 默认值:0
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔型;true||false
}
示例代码
var MWChatView = api.require('mwChatView');
MWChatView({
index: 0
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
updateItem
根据索引更新某一条列表的数据
updateItem({params}, callback(ret))
params
index:
- 类型:数字
- 描述:(可选项)数据列表的索引
- 默认值:0
data:
- 类型:JSON 对象
- 描述:列表的数据源
- 内部字段:
{
iconImage: "", //(可选项)字符串类型;头像的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
senderName:"", //(可选项)字符串类型;发送者名称
text: "", //(可选项)字符串类型;发送的内容
image:{
imagePath: 'widget://res/img/apicloud.png',//(可选项)字符串类型;列表项的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
width:400,// 图片宽度
height:300,//图片高度
BgColor:#ffffff,图片背景颜色
},
type:'img',// (可选项)字符串类型;img为图片类型,text 为普通文字类型,tip 为小字提示类型
isSender:false,// (可选项)布尔类型;是否是发送者,若不传则为 false
sendTime:'',//(可选项)字符串类型;列表分组时间戳,若不传则不显示分组标题
status:0, //(可选项)0:已发送 1:发送中 2:发送失败,默认为 0
imageProgress:100// image 类型的上传进度(可选项)1-100, 小于零时不显示,默认为 -1,type 为image 的时候起效
}
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔型;true||false
}
示例代码
var MWChatView = api.require('mwChatView');
MWChatView.updateItem({
index: 0,
data: {
iconImage: "", //(可选项)字符串类型;头像的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
senderName:"", //(可选项)字符串类型;发送者名称
text: "", //(可选项)字符串类型;发送的内容
image:{
imagePath: 'widget://res/img/apicloud.png',//(可选项)字符串类型;列表项的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
width:400,// 图片宽度
height:300,//图片高度
BgColor:#ffffff,图片背景颜色
},
type:'img',// (可选项)字符串类型;img为图片类型,text 为普通文字类型,tip 为小字提示类型
isSender:false,// (可选项)布尔类型;是否是发送者,若不传则为 false
sendTime:'',//(可选项)字符串类型;列表分组时间戳,若不传则不显示分组标题
status:0, //(可选项)0:已发送 1:发送中 2:发送失败,默认为 0
imageProgress:100// image 类型的上传进度(可选项)1-100, 小于零时不显示,默认为 -1,type 为image 的时候起效
}
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
insertItem
根据索引向某一条列表插入数据 注:当index为0时顶部填充数据
insertItem({params}, callback(ret, err))
params
index:
- 类型:数字
- 描述:(可选项)数据列表的索引
- 默认值:列表最后一条数据的索引
animation:
- 类型:布尔
- 描述:(可选项)是否展示动画
- 默认值:不展示
data:
- 类型:JSON 数组
- 描述:列表的数据源
- 内部字段:
{
iconImage: "", //(可选项)字符串类型;头像的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
senderName:"", //(可选项)字符串类型;发送者名称
text: "", //(可选项)字符串类型;发送的内容
image:{
imagePath: 'widget://res/img/apicloud.png',//(可选项)字符串类型;列表项的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
width:400,// 图片宽度
height:300,//图片高度
},
type:'img',// (可选项)字符串类型;img为图片类型,text 为普通文字类型,tip 为小字提示类型
isSender:false,// (可选项)布尔类型;是否是发送者,若不传则为 false
sendTime:'',//(可选项)字符串类型;列表分组时间戳,若不传则不显示分组标题
status:0, //(可选项)0:已发送 1:发送中 2:发送失败,默认为 0
imageProgress:100// image 类型的上传进度(可选项)1-100, 小于零时不显示,默认为 -1,type 为image 的时候起效
}
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔型;true||false
}
示例代码
var MWChatView = api.require('mwChatView');
MWChatView.insertItem({
index: 0,
data: [{
iconImage: "", //(可选项)字符串类型;头像的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
senderName:"", //(可选项)字符串类型;发送者名称
text: "", //(可选项)字符串类型;发送的内容
image:{
imagePath: 'widget://res/img/apicloud.png',//(可选项)字符串类型;列表项的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
width:400,// 图片宽度
height:300,//图片高度
},
type:'img',// (可选项)字符串类型;img为图片类型,text 为普通文字类型,tip 为小字提示类型
isSender:false,// (可选项)布尔类型;是否是发送者,若不传则为 false
sendTime:'',//(可选项)字符串类型;列表分组时间戳,若不传则不显示分组标题
status:0, //(可选项)0:已发送 1:发送中 2:发送失败,默认为 0
imageProgress:100// image 类型的上传进度(可选项)1-100, 小于零时不显示,默认为 -1,type 为image 的时候起效
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
appendData
向列表末端追加数据
appendData({params}, callback(ret))
params
forceScrollToBottom:
- 类型:布尔额理性
- 描述:(可选项)true 强制滚动到底部,false,如果列表已经在最底部会继续滚动,如果列表在其他位置则不滚动
- 默认为 false
data:
- 类型:数组对象
- 描述:列表的数据源,若不传或传空,仅收起上拉加载组件
- 内部字段:
[{
iconImage: "", //(可选项)字符串类型;头像的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
senderName:"", //(可选项)字符串类型;发送者名称
text: "", //(可选项)字符串类型;发送的内容
image:{
imagePath: 'widget://res/img/apicloud.png',//(可选项)字符串类型;列表项的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
width:400,// 图片宽度
height:300,//图片高度
},
type:'img',// (可选项)字符串类型;img为图片类型,text 为普通文字类型,tip 为小字提示类型
isSender:false,// (可选项)布尔类型;是否是发送者,若不传则为 false
sendTime:'',//(可选项)字符串类型;列表分组时间戳,若不传则不显示分组标题
status:0, //(可选项)0:已发送 1:发送中 2:发送失败,默认为 0
imageProgress:100// image 类型的上传进度(可选项)1-100, 小于零时不显示,默认为 -1,type 为image 的时候起效
}]
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔型;true||false
}
示例代码
var MWChatView = api.require('mwChatView');
MWChatView.appendData({
data: [{
iconImage: "", //(可选项)字符串类型;头像的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
senderName:"", //(可选项)字符串类型;发送者名称
text: "", //(可选项)字符串类型;发送的内容
image:{
imagePath: 'widget://res/img/apicloud.png',//(可选项)字符串类型;列表项的配图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
width:400,// 图片宽度
height:300,//图片高度
},
type:'img',// (可选项)字符串类型;img为图片类型,text 为普通文字类型,tip 为小字提示类型
isSender:false,// (可选项)布尔类型;是否是发送者,若不传则为 false
sendTime:'',//(可选项)字符串类型;列表分组时间戳,若不传则不显示分组标题
status:0, //(可选项)0:已发送 1:发送中 2:发送失败,默认为 0
imageProgress:100// image 类型的上传进度(可选项)1-100, 小于零时不显示,默认为 -1,type 为image 的时候起效
}]
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
scrollToIndex
滚动到对应索引位置
scrollToIndex({params}, callback(ret))
params
index:
- 类型:数字
- 描述:(可选项)数据列表的索引
- 默认值:0
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔型;true||false
}
示例代码
var MWChatView = api.require('mwChatView');
MWChatView.scrollToIndex({
index: 0,
function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
})
scrollToBottom
列表滚动到底部
scrollToBottom(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
内部字段:
{
status: true //布尔型;true||false
}
示例代码
var MWChatView = api.require('mwChatView');
MWChatView.scrollToBottom(function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
})
stopLoadData
停止加载 stopLoadData(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔型;true||false
}
示例代码
var MWChatView = api.require('mwChatView');
MWChatView.stopLoadData(function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
})
setAttr
设置列表的纵坐标和高度
setAttr({params}, callback(ret))
params
y:
- 类型:数字
- 描述:(可选项)模块的纵坐标
- 默认值:原 y 值
h:
- 类型:数字
- 描述:(可选项)模块的高度
- 默认值:原 h 值
marginBottom:
- 类型:数字
- 描述:(可选项)模块底部间距
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔型;true||false
}
示例代码
`js var MWChatView = api.require('mwChatView'); MWChatView.setAttr({ y: 40, h: 200, }, function(ret, err) { if (ret) { alert(JSON.stringify(ret)); } else { alert(JSON.stringify(err)); } });