121 lines
3.6 KiB
JavaScript
121 lines
3.6 KiB
JavaScript
import TIM from '../lib/tim-wx-sdk';
|
|
import TIMUploadPlugin from '../lib/tim-upload-plugin';
|
|
import {lastSysMsg} from "../api/msg"
|
|
import {imSign} from "../api/common"
|
|
import {loginout} from "../api/personCenter"
|
|
import {setBarData} from "./util"
|
|
wx.$TUIKit=null;
|
|
wx.$TUIKitTIM=null;
|
|
let appglobal=null;
|
|
function imLogin(app){
|
|
appglobal=app;
|
|
imSign().then(data=>{
|
|
wx.$TUIKit = TIM.create({
|
|
SDKAppID: appglobal.globalData.config.SDKAPPID,
|
|
});
|
|
//const userSig = genTestUserSig(this.globalData.config).userSig;
|
|
wx.$chat_SDKAppID = appglobal.globalData.config.SDKAPPID;
|
|
wx.$TUIKitTIM = TIM;
|
|
|
|
wx.$chat_userID = appglobal.globalData.config.userID;
|
|
//wx.$chat_userSig = userSig;
|
|
wx.$TUIKit.registerPlugin({ 'tim-upload-plugin': TIMUploadPlugin });
|
|
wx.$TUIKit.setLogLevel(0);
|
|
wx.$chat_userSig =data;
|
|
let USER_ID=wx.getStorageSync('USER_ID');
|
|
if(USER_ID){
|
|
wx.$TUIKit.login({
|
|
userID: wx.getStorageSync('USER_ID'),
|
|
userSig:data
|
|
}).then(res=>{
|
|
console.log("登录成功");
|
|
// wx.callManager.init({
|
|
// sdkAppID: appglobal.globalData.config.SDKAPPID, // 请填入 sdkAppID
|
|
// userID: wx.getStorageSync('USER_ID'), // 请填入 userID
|
|
// userSig: data, // 请填入 userSig
|
|
// globalCallPagePath: "TUICallKit/pages/globalCall/globalCall",
|
|
// tim: wx.$TUIKit
|
|
// });
|
|
}).catch(function(imError) {
|
|
console.warn('login error:', imError); // 登录失败的相关信息
|
|
});
|
|
wx.$TUIKit.off(wx.$TUIKitTIM.EVENT.SDK_READY,onSDKReady,this);
|
|
wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.SDK_READY,onSDKReady);
|
|
}else{
|
|
console.log("IM未登录")
|
|
}
|
|
|
|
})
|
|
};
|
|
function onSDKReady(app){
|
|
onMessageReceived();
|
|
wx.$TUIKit.off(TIM.EVENT.ERROR,errorMsg);
|
|
wx.$TUIKit.on(TIM.EVENT.ERROR,errorMsg,this);
|
|
wx.$TUIKit.off(wx.$TUIKitTIM.EVENT.MESSAGE_RECEIVED,onMessageReceived);
|
|
wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.MESSAGE_RECEIVED,onMessageReceived,this);
|
|
wx.$TUIKit.off(wx.$TUIKitTIM.EVENT.KICKED_OUT,onKickOut);
|
|
wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.KICKED_OUT,onKickOut,this);
|
|
wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED, onTotalUnreadMessageCountUpdated,this);
|
|
};
|
|
function errorMsg(event){
|
|
wx.showToast({
|
|
title:event.data.message,
|
|
icon:'none'
|
|
})
|
|
};
|
|
function onTotalUnreadMessageCountUpdated(event){
|
|
console.log(event.data);
|
|
};
|
|
function onKickOut(event){
|
|
wx.showToast({
|
|
title: '账号在其他端登录,即将下线',
|
|
icon:'none'
|
|
});
|
|
handleLogout();
|
|
};
|
|
function handleLogout(){
|
|
if(wx.$TUIKit){
|
|
wx.$TUIKit.destroy()
|
|
};
|
|
loginout().then(data => {
|
|
appglobal.globalData.chatNumber=0;
|
|
appglobal.globalData.sysNumber=0;
|
|
appglobal.globalData.conversationList=[];
|
|
wx.clearStorageSync();
|
|
wx.reLaunch({
|
|
url: '/pages/login/login'
|
|
})
|
|
})
|
|
};
|
|
|
|
function onMessageReceived(){
|
|
getLastMsg();
|
|
};
|
|
function getConversationList(msg){
|
|
wx.$TUIKit.getConversationList().then((res)=>{
|
|
const {conversationList}=res.data;
|
|
console.log(conversationList);
|
|
let list=conversationList.filter(item=>item.conversationID!='C2Cadministrator');
|
|
let unRead=0;
|
|
list.forEach((item)=>{
|
|
unRead=unRead+item.unreadCount;
|
|
})
|
|
appglobal.globalData.conversationList=list;
|
|
appglobal.globalData.chatNumber=Number(unRead);
|
|
setBarData(Number(unRead)+msg);
|
|
});
|
|
};
|
|
function getLastMsg(){
|
|
lastSysMsg().then(data=>{
|
|
let msg=data.count;
|
|
appglobal.globalData.sysNumber=msg;
|
|
getConversationList(msg);
|
|
}).catch(()=>{
|
|
let msg=0;
|
|
appglobal.globalData.sysNumber=0;
|
|
getConversationList(msg)
|
|
})
|
|
};
|
|
module.exports={
|
|
imLogin
|
|
} |