open close show hide getIndex getDataByIndex reloadData deleteItem updateItem insertItem appendData scrollToBottom scrollToIndex stopLoadData setAttr
mwChatView 插件封装了一个聊天列表控件;开发者可自定义列表的数据源,及列表的样式,支持列表项的增、删、改、查,顶部追加数据。 **本插件提供了测试案例 测试DEMO地址**, 在使用中碰到的任何问题都可以向apicloud发工单,我们将不断改进和优化。
打开
open({params}, callback(ret, err))
rect:
{
    x: 0,   //数字类型;插件左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
    y: 0,   //数字类型;插件左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
    w: 320, //数字类型;插件的宽度;默认值:所属的 Window 或 Frame 的宽度
    h: 480  //数字类型;插件的高度;默认值:所属的 Window 或 Frame 的高度 
   }
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 的时候起效 上传进度可用 updateItem 进行更新
 }]
styles:
{
    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://),默认:YonBuilder移动开发 图标
           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://),默认:YonBuilder移动开发 图标
          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',
    },
}
fixedOn:
showScrollBar:
ret:
{
    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) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});
iOS系统,Android系统
可提供的1.0.0及更高版本
关闭数据列表插件
close()
var MWChatView = api.require('mwChatView');
MWChatView.close();
iOS系统,Android系统
可提供的1.0.0及更高版本
显示
show()
var MWChatView = api.require('mwChatView');
MWChatView.show();
iOS系统,Android系统
可提供的1.0.0及更高版本
隐藏
hide()
var MWChatView = api.require('mwChatView');
MWChatView.hide();
iOS系统,Android系统
根据开发者自定义的唯一标识(open 接口的 data 参数中自定义的唯一标识)查找列表项对应的数据
getIndex({params}, callback(ret, err))
key:
value:
ret:
{
    index: 0,   //数字类型;当前列表项的索引
    data: []    //数组类型;当前列表项的数据,内部字段与 open 时的 data 参数一致
}
var MWChatView = api.require('mwChatView');
MWChatView.getIndex({
    key: 'uid',
    value: '1001'
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});
iOS系统,Android系统
根据列表项的索引获取对应的数据
getDataByIndex({params}, callback(ret))
index:
ret:
{
    data: []    //数组类型;当前列表项的数据,内部字段与 open 时的 data 参数一致
}
var MWChatView = api.require('mwChatView');
MWChatView.getDataByIndex({
    index: 0
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});
iOS系统,Android系统
可提供的1.0.0及更高版本
刷新列表数据
reloadData({params}, callback(ret))
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:'',             //(可选项)字符串类型;列表分组时间戳,若不传则不显示分组标题	
}]
ret:
{
    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) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});
iOS系统,Android系统
可提供的1.0.0及更高版本
根据索引删除某一条列表的数据
deleteItem({params}, callback(ret))
index:
ret:
{
    status: true       //布尔型;true||false
}
var MWChatView = api.require('mwChatView');
MWChatView({
    index: 0
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});
iOS系统,Android系统
可提供的1.0.0及更高版本
根据索引更新某一条列表的数据
updateItem({params}, callback(ret))
index:
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 的时候起效
    
}
ret:
{
    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) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});
iOS系统,Android系统
可提供的1.0.0及更高版本
根据索引向某一条列表插入数据 注:当index为0时顶部填充数据
insertItem({params}, callback(ret, err))
index:
animation:
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 的时候起效
}
ret:
{
    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) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});
iOS系统,Android系统
可提供的1.0.0及更高版本
向列表末端追加数据
appendData({params}, callback(ret))
forceScrollToBottom:
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 的时候起效
    }]
ret:
{
    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) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});
iOS系统,Android系统
可提供的1.0.0及更高版本
滚动到对应索引位置
scrollToIndex({params}, callback(ret))
index:
ret:
{
    status: true        //布尔型;true||false
}
var MWChatView = api.require('mwChatView');
MWChatView.scrollToIndex({
    index: 0,
    function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
})
列表滚动到底部
scrollToBottom(callback(ret))
ret:
{
    status: true        //布尔型;true||false
}
var MWChatView = api.require('mwChatView');
MWChatView.scrollToBottom(function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
})
停止加载 stopLoadData(callback(ret))
ret:
{
    status: true        //布尔型;true||false
}
var MWChatView = api.require('mwChatView');
MWChatView.stopLoadData(function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
})
设置列表的纵坐标和高度
setAttr({params}, callback(ret))
y:
h:
marginBottom:
ret:
{
    status: true       //布尔型;true||false
}
```js var MWChatView = api.require('mwChatView'); MWChatView.setAttr({ y: 40, h: 200, }, function(ret, err) { if (ret) { api.alert({msg: JSON.stringify(ret)}); } else { api.alert({msg: JSON.stringify(err)}); } }); ``