625 lines
24 KiB
JavaScript
625 lines
24 KiB
JavaScript
// *****************************************************************************
|
||
// 文 件 名: jbarassist.js
|
||
// 作 者: wsj
|
||
// 版 本: 1.0.0.0
|
||
// 日 期: 2014-07-15
|
||
// 文件描述:
|
||
// 所有和电话条辅助有关的函数
|
||
// 说 明:
|
||
// 电话条辅助函数
|
||
// 修改说明:
|
||
// *****************************************************************************
|
||
|
||
|
||
//--------------------------------------------------------------------------------------------------
|
||
// 【1】VccBar辅助类
|
||
//--------------------------------------------------------------------------------------------------
|
||
|
||
function JVccBarAssist(){
|
||
this.oBarBtnControl = new JBarBtnControl();
|
||
this.oBarAgentStatus = new JBarAgentStatus();
|
||
|
||
return this;
|
||
}
|
||
|
||
//--------------------------------------------------------------------------------------------
|
||
//--- 【2】界面命令按钮控制
|
||
//--------------------------------------------------------------------------------------------
|
||
function JBarBtnControl(){
|
||
//内部函数
|
||
this._arrCmd = new Array();
|
||
this._arrCmdIndex = new Array();
|
||
this._type = 0; //0:disable 1:display
|
||
this._getCmdID = function (index){
|
||
for(var i=0;i<this._arrCmdIndex.length;i++)
|
||
{
|
||
if(this._arrCmdIndex[i] == index)
|
||
return this._arrCmd[i];
|
||
}
|
||
return "";
|
||
}
|
||
this._ChangeObject = function(flag,oElem){
|
||
if(flag == true){//可用
|
||
if(this._type == 0){
|
||
oElem.disabled = false;
|
||
}
|
||
else{
|
||
oElem.style.display = "";
|
||
}
|
||
}
|
||
else{
|
||
if(this._type == 0){
|
||
oElem.disabled = true;
|
||
}
|
||
else{
|
||
oElem.style.display = "none";
|
||
}
|
||
}
|
||
}
|
||
|
||
//公共函数
|
||
//绑定btnID和UIID
|
||
this.AttachBtnByUIID = function(objID,btnID){
|
||
this._arrCmd.push(objID);
|
||
this._arrCmdIndex.push(btnID);
|
||
}
|
||
//更新界面
|
||
this.UpdateUI = function(btns){
|
||
var arrIndex = btns.split("|");
|
||
for( var j=0;j<this._arrCmdIndex.length;j++){
|
||
var id = this._arrCmdIndex[j];
|
||
var bFind = false;
|
||
for( var i=0;i<arrIndex.length;i++){
|
||
if(parseInt(arrIndex[i]) == id)
|
||
{
|
||
bFind = true;
|
||
break;
|
||
}
|
||
}
|
||
var uiID = this._getCmdID(id);
|
||
if(uiID == "")
|
||
continue;
|
||
var oElement = document.getElementById(uiID);
|
||
if(oElement == null)
|
||
continue;
|
||
this._ChangeObject(bFind,oElement);
|
||
}
|
||
}
|
||
//设置显示类型 0:不可用 其它:不显示
|
||
this.SetUpdateType =function(type){
|
||
this._type = type;
|
||
}
|
||
return this;
|
||
}
|
||
|
||
|
||
//--------------------------------------------------------------------------------------------
|
||
//--- 【3】电话条状态变化时间统计
|
||
//--------------------------------------------------------------------------------------------
|
||
|
||
function BarBeginAgentStatusTimer(){
|
||
if(application.oVccBarAssist.oBarAgentStatus._timer == null)
|
||
application.oVccBarAssist.oBarAgentStatus._timer = setInterval( BarAgentStatusTimeSum ,1000);
|
||
}
|
||
function BarStopAgentStatusTimer(){
|
||
if(application.oVccBarAssist.oBarAgentStatus._timer != null)
|
||
clearInterval(application.oVccBarAssist.oBarAgentStatus._timer);
|
||
}
|
||
|
||
function BarAgentStatusTimeSum(){
|
||
application.oVccBarAssist.oBarAgentStatus.AgentStatusTimeSum();
|
||
}
|
||
|
||
function JBarAgentStatus(){
|
||
this._busySubStatusSelectedItem = "";
|
||
this._agentStatus = 0;//0:未登录 1:忙碌 2:空闲 3:通话中 4:后续态
|
||
|
||
this._timerCount = 0;
|
||
this._timer = null;
|
||
this._arrSubBusyIndex = new Array();
|
||
this._arrSubBusyText = new Array();
|
||
|
||
//公共函数
|
||
//设置忙碌子状态
|
||
this.SetSubBusyStatus = function(param){
|
||
this._arrSubBusyIndex.length = 0;
|
||
this._arrSubBusyText.length = 0;
|
||
var arrItem = param.split("$");
|
||
for(var i=0;i<arrItem.length;i++)
|
||
{
|
||
var item = arrItem[i].split("|");
|
||
if(item.length == 2)
|
||
{
|
||
this._arrSubBusyIndex.push(parseInt(item[0]));
|
||
this._arrSubBusyText.push(item[1]);
|
||
}
|
||
}
|
||
}
|
||
|
||
//设置agent状态
|
||
this.SetAgentStatus = function(agentStatus){
|
||
//通话算一个状态
|
||
if(this._agentStatus == agentStatus && this._agentStatus != 3)
|
||
return;
|
||
this._agentStatus = agentStatus;
|
||
this._timerCount = 0;
|
||
if(this._agentStatus>0)
|
||
{
|
||
BarBeginAgentStatusTimer();
|
||
}
|
||
else
|
||
{
|
||
BarStopAgentStatusTimer();
|
||
}
|
||
}
|
||
this.OnAgentStatusTime = function (agentStatus,agentStatusText,timerCount){}
|
||
|
||
|
||
|
||
//统计电话条某个状态的时间
|
||
this.AgentStatusTimeSum = function(){
|
||
this._timerCount = this._timerCount+1;
|
||
this._showAgentStatusTimer();
|
||
}
|
||
|
||
this._getSubStatusText = function(){
|
||
var agentSubBusyStatus = application.oJVccBar.GetAgentSubBusyStatus();
|
||
if(agentSubBusyStatus ==-1){
|
||
this._busySubStatusSelectedItem = "";
|
||
}
|
||
else{
|
||
for(var i=0;i<this._arrSubBusyIndex.length;i++)
|
||
{
|
||
if(this._arrSubBusyIndex[i] == agentSubBusyStatus)
|
||
{
|
||
this._busySubStatusSelectedItem = this._arrSubBusyText[i];
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
this._getTimerString = function (len){
|
||
if(len == 0)
|
||
return "";
|
||
var hour = parseInt(len/3600);
|
||
hour =(hour<10 ? "0"+hour:hour);
|
||
if(hour == "00")
|
||
hour = "";
|
||
else
|
||
hour = hour+":"
|
||
|
||
var minute = parseInt((len%3600)/60);
|
||
minute =(minute<10 ? "0"+minute:minute);
|
||
var second = len%60;
|
||
second =(second<10 ? "0"+second:second);
|
||
|
||
return (hour.toString()+minute.toString()+":"+second.toString());
|
||
}
|
||
this._getTextByStatus = function (){
|
||
if(this._agentStatus == 1){
|
||
this._getSubStatusText();
|
||
if(this._busySubStatusSelectedItem != "")
|
||
return this._busySubStatusSelectedItem;
|
||
return "忙碌";
|
||
}
|
||
else if(this._agentStatus == 2){
|
||
return "就绪";
|
||
}
|
||
else if(this._agentStatus == 3){
|
||
return "通话中";
|
||
}
|
||
else if(this._agentStatus == 4){
|
||
return "后续态";
|
||
}
|
||
else{
|
||
return "未登录";
|
||
}
|
||
}
|
||
this._showAgentStatusTimer = function ()
|
||
{
|
||
this.OnAgentStatusTime(this._agentStatus,this._getTextByStatus(),this._getTimerString(this._timerCount));
|
||
}
|
||
|
||
|
||
return this;
|
||
}
|
||
|
||
|
||
|
||
//--------------------------------------------------------------------------------------------------
|
||
// 【4】微信封装类
|
||
//--------------------------------------------------------------------------------------------------
|
||
|
||
//--------------------------------------------------------------------------------------------------
|
||
// 【4.1】微信单条消息类
|
||
//--------------------------------------------------------------------------------------------------
|
||
|
||
function JWeChatMessageItem(){
|
||
this.direction = 0; //0:接收 1:发送
|
||
this.msgseq = -1; //会话中系列号
|
||
this.msgType = ""; //text/image/voice/vedio/end/begin/event/notice
|
||
this.content = ""; //消息内容或者信息url,msgType为text起作用
|
||
this.sessionUrl = ""; //text/image/voice/vedio:mms上的内容的url
|
||
this.recongnition=""; //语音识别内容,msgType为voice起作用
|
||
this.Event = ""; //事件类型,如 subscribe,msgType为event起作用
|
||
this.eventKey = ""; //事件值,msgType为event起作用
|
||
this.title = ""; //结构化数据标题,msgType为notice起作用
|
||
this.data = ""; //结构化数据; 需要base64编码msgType为notice起作用
|
||
this.timeStamp = ""; //String 消息时间
|
||
this.needMmcOpenData = 0; //mmc需要解析标示:1 需要解析data,0表示不需要解析,msgType为notice起作用
|
||
|
||
this.code = 0;
|
||
this.des = "";
|
||
this.sender = "";
|
||
|
||
return this;
|
||
}
|
||
//--------------------------------------------------------------------------------------------------
|
||
// 【4.1】微信会话类
|
||
//--------------------------------------------------------------------------------------------------
|
||
function JWechChatSession(){
|
||
this.type = "00"; //会话类型:00 表示 微信 ,01 表示webchat待处理
|
||
this.sessionId = ""; //会话id
|
||
|
||
this.userNickName = "";
|
||
this.sex = "0";
|
||
this.province = "";
|
||
this.city = "";
|
||
this.country = "";
|
||
this.userId = ""; //微信用户号
|
||
|
||
this.vccPublicId = ""; //企业微信公共号
|
||
this.vccName = "";
|
||
this.msgSession = new Array();
|
||
this.status = 1; //状态end:0 begin:1
|
||
|
||
//--------------------------------------------------------------------------------------------------
|
||
// 公共函数
|
||
//--------------------------------------------------------------------------------------------------
|
||
this.AddMessageItem = function(sender,msgseq,msgType,content,sessionUrl,recongnition,Event,eventKey,title,data,timeStamp,needMmcOpenData){
|
||
var index = this.GetMessageIndex(msgseq)
|
||
if(index == -1)
|
||
{
|
||
var item = new JWeChatMessageItem();
|
||
item.sender = sender;
|
||
item.direction = (item.sender == this.userId)?0:1; //0:接收 1:发送
|
||
item.msgseq = msgseq; //会话中系列号
|
||
item.msgType = msgType; //text/image/voice/vedio/end/begin/event/notice
|
||
item.content = content; //消息内容或者信息url,msgType为text起作用
|
||
item.sessionUrl = sessionUrl; //text/image/voice/vedio:mms上的内容的url
|
||
item.recongnition=recongnition; //语音识别内容,msgType为voice起作用
|
||
item.Event = Event; //事件类型,如 subscribe,msgType为event起作用
|
||
item.eventKey = eventKey; //事件值,msgType为event起作用
|
||
item.title = title; //结构化数据标题,msgType为notice起作用
|
||
item.data = data; //结构化数据; 需要base64编码msgType为notice起作用
|
||
item.timeStamp = timeStamp; //String 消息时间
|
||
item.needMmcOpenData = needMmcOpenData;
|
||
this.msgSession.push(item);
|
||
return item;
|
||
}
|
||
return this.msgSession[index];
|
||
}
|
||
this.GetMessageCount = function(){ return this.msgSession.length;}
|
||
this.GetMessageItemByIndex = function(index){
|
||
if(index<0 ||index >= this.msgSession.length ){
|
||
return null;
|
||
}
|
||
return this.msgSession[index];
|
||
}
|
||
|
||
this.GetMessageItem = function(msgseq){
|
||
var index = this.GetMessageIndex(msgseq)
|
||
if(index == -1)
|
||
return null;
|
||
return this.msgSession[index];
|
||
}
|
||
this.GetLastSendItem = function(){
|
||
for(var i=this.msgSession.length-1;i>0;i--)
|
||
{
|
||
if( this.msgSession[i].sender == this.vccPublicId && this.msgSession[i].direction == 1)
|
||
return this.msgSession[i];
|
||
}
|
||
return null;
|
||
}
|
||
this.GetMessageIndex = function(msgseq){
|
||
for(var i=0;i<this.msgSession.length;i++)
|
||
{
|
||
if( this.msgSession[i].msgseq == msgseq )
|
||
return i;
|
||
}
|
||
return -1;
|
||
}
|
||
}
|
||
|
||
//--------------------------------------------------------------------------------------------------
|
||
// 【4.1】微信管理类
|
||
//--------------------------------------------------------------------------------------------------
|
||
|
||
function JWechChatManager(){
|
||
//微信会话集合
|
||
this._currentSession = "";
|
||
this.weChatSessions = new Array();
|
||
|
||
this.arrSendFileName = new Array();
|
||
this.arrSendFileSessionID = new Array();
|
||
|
||
this.arrRecvFileName = new Array();
|
||
this.arrRecvFileSessionID = new Array();
|
||
this.arrRecvFileMsgseq = new Array();
|
||
|
||
//得到Session的Index
|
||
this.GetSessionIndexBySessionID = function(sessionId){
|
||
for(var i=0;i<this.weChatSessions.length;i++)
|
||
{
|
||
if( this.weChatSessions[i].sessionId == sessionId)
|
||
return i;
|
||
}
|
||
return -1;
|
||
}
|
||
this.GetSessionIndexByUserId = function(userId){
|
||
for(var i=0;i<this.weChatSessions.length;i++)
|
||
{
|
||
if( this.weChatSessions[i].userId == userId)
|
||
return i;
|
||
}
|
||
return -1;
|
||
}
|
||
this.SetUserInfo = function(param){
|
||
//00oFtrNjhO1964Jk413k9jaYRTb5RM|5ZC06IOc5Yab|1|5YyX5Lqs|5rW35reA|5Lit5Zu9
|
||
//userId|nikeName的base64编码|Sex(1男,2女,0未知)|Province的base64编码|city的base64编码|country的base64编码
|
||
var oParam = param.split("|");
|
||
if(oParam.length == 6)
|
||
{
|
||
var sessionItem = this.GetSessionItemByUserId(oParam[0]);
|
||
if(sessionItem != null){
|
||
sessionItem.userNickName = GetGBKFromBase64(oParam[1]);
|
||
sessionItem.sex = oParam[2];
|
||
sessionItem.province = GetGBKFromBase64(oParam[3]);
|
||
sessionItem.city = GetGBKFromBase64(oParam[4]);
|
||
sessionItem.country = GetGBKFromBase64(oParam[5]);
|
||
this.OnBeginSession(sessionItem.sessionId);
|
||
}
|
||
}
|
||
}
|
||
|
||
//得到Session的Item
|
||
this.GetSessionItemByUserId = function(userId){
|
||
var index = this.GetSessionIndexByUserId(userId);
|
||
if(index == -1)
|
||
return null;
|
||
return this.weChatSessions[index];
|
||
}
|
||
|
||
//得到Session的Item
|
||
this.AddSessionItem = function(sessionId,type,userId,vccPublicId){
|
||
var index = this.GetSessionIndexBySessionID(sessionId,userId,vccPublicId);
|
||
if(index == -1)
|
||
{
|
||
var sessionItem = new JWechChatSession();
|
||
sessionItem.type = type;
|
||
sessionItem.sessionId = sessionId;
|
||
sessionItem.userId = userId;
|
||
sessionItem.vccPublicId = vccPublicId;
|
||
this.weChatSessions.push(sessionItem);
|
||
return sessionItem;
|
||
}
|
||
return null;
|
||
}
|
||
|
||
//缓存接收到对方发过来消息的事件 OnRecvWeChatMessage
|
||
this.OnSaveRecvMessageReport = function(sessionId,msgseq,type,userId,vccPublicId,msgType,content,sessionUrl,recongnition,msgevent,eventKey,title,data,timeStamp){
|
||
var sessionItem = this.GetSessionItemBySessionID(sessionId);
|
||
if(sessionItem == null){
|
||
this._currentSession = sessionId;
|
||
sessionItem = this.AddSessionItem(sessionId,type,userId,vccPublicId);
|
||
}
|
||
if(sessionItem != null)
|
||
{
|
||
sessionItem.AddMessageItem(userId,msgseq,msgType,content,sessionUrl,recongnition,Event,eventKey,title,data,timeStamp,0);
|
||
if(msgType == "begin"){
|
||
if(application.oJVccBar.GetJVccBarType() == vccBarTypeHTML5 ){
|
||
application.oJVccBar.GetWeChatParam(userId);
|
||
}
|
||
else{
|
||
this.SetUserInfo(application.oJVccBar.GetWeChatParam(userId));
|
||
}
|
||
}
|
||
else if(msgType == "end"){
|
||
this.OnEndSession(sessionId);
|
||
}
|
||
else{
|
||
this.OnRecvMessage(sessionId,msgseq);
|
||
}
|
||
}
|
||
}
|
||
|
||
//缓存自己发送消息返回事件 OnSendWeChatMsgReport
|
||
this.OnSaveSendMessageReport = function(userId,sessionId,msgseq,code,des,timeStamp){
|
||
var sessionItem = this.GetSessionItemBySessionID(sessionId);
|
||
if(sessionItem != null){
|
||
var item = sessionItem.GetLastSendItem()
|
||
if(item != null){
|
||
item.code = code;
|
||
item.des = des;
|
||
item.timeStamp = timeStamp;
|
||
item.msgseq = msgseq;
|
||
//保存消息发送状态到队列中
|
||
this.OnSendMessageReport(sessionId,msgseq);
|
||
}
|
||
}
|
||
}
|
||
//缓存发送消息到队列中 SendWeChatMsg时缓存
|
||
this.SaveSendMessage = function(sessionId,type,userId,vccPublicId,msgtype,content,tempURL,title,data,needMmcOpenData){
|
||
var sessionItem = this.GetSessionItemBySessionID(sessionId);
|
||
if(sessionItem != null)
|
||
{
|
||
//sender,msgseq,msgType,content,sessionUrl,recongnition,Event,eventKey,title,data,timeStamp,needMmcOpenData
|
||
//保存到队列中
|
||
sessionItem.AddMessageItem(vccPublicId,-1,msgtype,content,tempURL,"","","",title,data,"",needMmcOpenData);
|
||
}
|
||
}
|
||
|
||
//触发文件伤处结果的事件
|
||
this.OnInvokeUploadFileToMMSReport = function (strFileName,status,strUrl){
|
||
if(status == 1 || status == 2){
|
||
for(var i=0;i<this.arrSendFileName.length;i++)
|
||
{
|
||
if( this.arrSendFileName[i] == strFileName){
|
||
this.OnUploadFileStatus(this.arrSendFileSessionID[i],status,strUrl);
|
||
this.arrSendFileSessionID.slice(i,1);
|
||
this.arrSendFileName.slice(i,1);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//触发文件伤处结果的事件
|
||
this.OnInvokeDownFileFromMMSReport = function (strUrl,status,strFileUrl,msgseq){
|
||
if(status == 1 || status == 2){
|
||
for(var i=0;i<this.arrRecvFileName.length;i++)
|
||
{
|
||
if( this.arrRecvFileName[i] == strUrl && this.arrRecvFileMsgseq[i] == msgseq){
|
||
this.OnDowndFileStatus(this.arrRecvFileSessionID[i],this.arrRecvFileMsgseq[i],status,strFileUrl);
|
||
this.arrRecvFileSessionID.slice(i,1);
|
||
this.arrRecvFileName.slice(i,1);
|
||
this.arrRecvFileMsgseq.slice(i,1);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
//////////////////////////////////////////////////////////////////////
|
||
///// public function
|
||
///////////////////////////////////////////////////////////////////
|
||
//1.SendTextMessage
|
||
this.SendTextMessage = function(sessionId,message){
|
||
if(sessionId == "") sessionId = this._currentSession;
|
||
var sessionItem = this.GetSessionItemBySessionID(sessionId);
|
||
if(sessionItem != null){
|
||
//sessionId: string, type:string, userId:string,vccPublicId: string,msgtype: string,content: string,tempUrl:string,title:string,data:string, needMmcOpenData:int
|
||
application.oJVccBar.SendWeChatMsg(sessionId,sessionItem.type,sessionItem.userId,sessionItem.vccPublicId,"text",message,"","","",0);
|
||
}
|
||
}
|
||
|
||
//2.SendImageMessage
|
||
this.SendImageMessage = function(sessionId,tempUrl){
|
||
if(sessionId == "") sessionId = this._currentSession;
|
||
var sessionItem = this.GetSessionItemBySessionID(sessionId);
|
||
if(sessionItem != null)
|
||
{
|
||
//sessionId: string, type:string, userId:string,vccPublicId: string,msgtype: string,content: string,tempUrl:string,title:string,data:string, needMmcOpenData:int
|
||
application.oJVccBar.SendWeChatMsg(sessionId,sessionItem.type,sessionItem.userId,sessionItem.vccPublicId,"image","",tempUrl,"","",0);
|
||
}
|
||
}
|
||
|
||
//3.SendVoiceMessage
|
||
this.SendVoiceMessage = function(sessionId,tempUrl){
|
||
if(sessionId == "") sessionId = this._currentSession;
|
||
var sessionItem = this.GetSessionItemBySessionID(sessionId);
|
||
if(sessionItem != null)
|
||
{
|
||
//sessionId: string, type:string, userId:string,vccPublicId: string,msgtype: string,content: string,tempUrl:string,title:string,data:string, needMmcOpenData:int
|
||
application.oJVccBar.SendWeChatMsg(sessionId,sessionItem.type,sessionItem.userId,sessionItem.vccPublicId,"voice","",tempUrl,"","",0);
|
||
}
|
||
}
|
||
//4.SendVedioMessage
|
||
this.SendVedioMessage = function(sessionId,tempUrl,title){
|
||
if(sessionId == "") sessionId = this._currentSession;
|
||
var sessionItem = this.GetSessionItemBySessionID(sessionId);
|
||
if(sessionItem != null)
|
||
{
|
||
//sessionId: string, type:string, userId:string,vccPublicId: string,msgtype: string,content: string,tempUrl:string,title:string,data:string, needMmcOpenData:int
|
||
application.oJVccBar.SendWeChatMsg(sessionId,sessionItem.type,sessionItem.userId,sessionItem.vccPublicId,"vedio","",tempUrl,title,"",0);
|
||
}
|
||
}
|
||
//5.SendFormatMessage
|
||
this.SendFormatMessage = function(sessionId,title,data,needMmcOpenData){
|
||
if(sessionId == "") sessionId = this._currentSession;
|
||
var sessionItem = this.GetSessionItemBySessionID(sessionId);
|
||
if(sessionItem != null)
|
||
{
|
||
//sessionId: string, type:string, userId:string,vccPublicId: string,msgtype: string,content: string,tempUrl:string,title:string,data:string, needMmcOpenData:int
|
||
application.oJVccBar.SendWeChatMsg(sessionId,sessionItem.type,sessionItem.userId,sessionItem.vccPublicId,"notice","","",title,data,needMmcOpenData);
|
||
}
|
||
}
|
||
//6.EndMessage
|
||
this.EndMessage = function(sessionId){
|
||
if(sessionId == "") sessionId = this._currentSession;
|
||
var sessionItem = this.GetSessionItemBySessionID(sessionId);
|
||
if(sessionItem != null)
|
||
{
|
||
//sessionId: string, type:string, userId:string,vccPublicId: string,msgtype: string,content: string,tempUrl:string,title:string,data:string, needMmcOpenData:int
|
||
application.oJVccBar.SendWeChatMsg(sessionId,sessionItem.type,sessionItem.userId,sessionItem.vccPublicId,"end","","","","",0);
|
||
}
|
||
}
|
||
|
||
|
||
//7.UploadFileToMMS
|
||
this.UploadFileToMMS = function(sessionId,strFileName){
|
||
if(strFileName == "") return 0;
|
||
if(sessionId == "") sessionId = this._currentSession;
|
||
var oWechatSession = this.GetSessionItemBySessionID(sessionId);
|
||
if(oWechatSession != null)
|
||
{
|
||
this.arrSendFileName.push(strFileName);
|
||
this.arrSendFileSessionID.push(sessionId);
|
||
application.oJVccBar.UploadFileToMMS(strFileName,oWechatSession.userId,oWechatSession.vccPublicId);
|
||
}
|
||
return 0;
|
||
}
|
||
//8.DownFileFromMMS
|
||
this.DownFileFromMMS = function(sessionId,msgseq,url){
|
||
if(url == "") return 0;
|
||
if(sessionId == "") sessionId = this._currentSession;
|
||
var oWechatSession = this.GetSessionItemBySessionID(sessionId);
|
||
if(oWechatSession != null)
|
||
{
|
||
this.arrRecvFileName.push(url);
|
||
this.arrRecvFileSessionID.push(sessionId);
|
||
this.arrRecvFileMsgseq.push(msgseq);
|
||
//url,userId,vccPublicId,sessionId,msgSeq
|
||
application.oJVccBar.DownFileFromMMS(url,oWechatSession.userId,oWechatSession.vccPublicId,sessionId,msgseq);
|
||
}
|
||
return 0;
|
||
}
|
||
|
||
//9.GetSessionItemBySessionID
|
||
this.GetSessionItemBySessionID = function(sessionId){
|
||
var index = this.GetSessionIndexBySessionID(sessionId);
|
||
if(index == -1)
|
||
return null;
|
||
return this.weChatSessions[index];
|
||
}
|
||
//10.GetSessionItem
|
||
this.GetSessionItem = function(sessionId,msgseq){
|
||
var oWechatSession = this.GetSessionItemBySessionID(sessionId);
|
||
if(oWechatSession != null){
|
||
for(var i=0;i<oWechatSession.GetMessageCount();i++){
|
||
var oItem = oWechatSession.GetMessageItemByIndex(i);
|
||
if(oItem.msgseq == msgseq){
|
||
return oItem;
|
||
}
|
||
}
|
||
}
|
||
return null;
|
||
}
|
||
|
||
//////////////////////////////////////////////////////////////////////
|
||
///// public function
|
||
///////////////////////////////////////////////////////////////////
|
||
//session开始事件
|
||
this.OnBeginSession = function(sessionID) {}
|
||
//session结束事件
|
||
this.OnEndSession = function(sessionID) {}
|
||
//session接收文本事件
|
||
this.OnRecvMessage = function(sessionID,msgseq) {}
|
||
//session接收到事件
|
||
this.OnSendMessageReport = function(sessionID,msgseq) {}
|
||
//session接收到事件
|
||
this.OnUploadFileStatus = function (sessionID,status,strUrl){}
|
||
this.OnDowndFileStatus = function (sessionID,msgseq,status,strUrl){}
|
||
|
||
}
|
||
|