zdg #146

Merged
zhengdegang merged 3 commits from zdg into main 2024-08-16 17:08:13 +08:00
5 changed files with 18 additions and 14 deletions

View File

@ -3,7 +3,7 @@
*/
// import { ipcMain } from 'electron'
// const TimMain = require('im_electron_sdk/dist/main')
import TimMain from 'im_electron_sdk/dist/main'
// import TimMain from 'im_electron_sdk/dist/main'
// import {TIMErrCode} from 'im_electron_sdk/dist/enumbers'
const sdkappidDef = 1600034736 // 可以去腾讯云即时通信IM控制台申请

View File

@ -3,7 +3,7 @@ import { join } from 'path'
import { electronApp, optimizer, is } from '@electron-toolkit/utils'
import icon from '../../resources/icon.png?asset'
import File from './file'
import chat from './chat' // chat封装
// import chat from './chat' // chat封装
// 代理 electron/remote
// 第一步引入remote
import remote from '@electron/remote/main'
@ -230,15 +230,14 @@ app.on('window-all-closed', () => {
// 监听全局事件
function handleAll() {
// chat.initialize() // im-chat 实例
const chatInstance = chat.initialize() // im-chat 实例
// const chatInstance = chat.initialize() // im-chat 实例
// 新窗口创建-监听
ipcMain.on('new-window', (e, data) => {
const { id, type } = data
const win = BrowserWindow.fromId(id)
win.type = type // 绑定独立标识
remote.enable(win.webContents) // 开启远程服务
chatInstance.enable(win.webContents) // 开启im-chat
// chatInstance.enable(win.webContents) // 开启im-chat
})
// 用于监听-状态管理变化-同步所有窗口
ipcMain.handle('pinia-state-change', (e, storeName, jsonStr) => {

View File

@ -1,10 +1,10 @@
import { contextBridge } from 'electron'
import { electronAPI } from '@electron-toolkit/preload'
import TimRender from 'im_electron_sdk/dist/renderer' // im渲染部分实例
// import TimRender from 'im_electron_sdk/dist/renderer' // im渲染部分实例
// Custom APIs for renderer
const api = {
preloadPath: __dirname, // 当前preload地址
getTimRender: () => new TimRender(), // im渲染部分实例
// getTimRender: () => new TimRender(), // im渲染部分实例
}
// Use `contextBridge` APIs to expose Electron APIs to
// renderer only if context isolation is enabled, otherwise

View File

@ -74,7 +74,9 @@ export class ImChat {
try {
if(!API) reject('preload api获取失败, 初始化-未完成')
this.timChat = await API.getTimRender()
await this.timChat.TIMInit()
await this.timChat.TIMInit({
// electron_log:true,
})
console.log('[im-chat]:初始化成功')
this.status.isConnect = true
this.setConfig() // 设置日志级别
@ -150,6 +152,7 @@ export class ImChat {
return this.timChat.TIMLogout().then(res => {
console.log('登出成功', res)
this.status.isLogin = false
this.timChat.TIMUninit() // 反初始化
return res
}).catch(error => {
console.log('登出失败', error)

View File

@ -10,7 +10,7 @@
<upvote-vue ref="upvoteRef"></upvote-vue>
<!-- im-chat 聊天组件 -->
<im-chat ref="imChatRef" @change="chatChange" />
<!-- <im-chat ref="imChatRef" @change="chatChange" /> -->
<!-- 底部工具栏 -->
<div class="tool-bottom-all" @mouseenter="mouseChange(0)" @mouseleave="mouseChange(1)">
@ -78,7 +78,8 @@ const btnList = [ // 工具栏按钮列表
// === ===
onMounted(async() => {
setTimeout(() => {
getClassInfo() // ex3
classManageApi.startClass(classObj.id) // -
// getClassInfo() // ex3
resetStatus() // -
}, 200);
})
@ -88,12 +89,13 @@ onMounted(async() => {
const getClassInfo = async () => {
const { data } = await classManageApi.getClassInfo(classObj.id)
classObj.data = data
// console.log('classObj:', classObj)
if(!data.ex3 || data.ex3 == 'undefined') { //
await imChatRef.value.imChatObj.imChat.createGroup(data.className)
const timGroupId = imChatRef.value.imChatObj.imChat.timGroupId
classManageApi.startClass(classObj.id, timGroupId) //
} else { //
// console.log(': ', data.ex3)
console.log('已创建群: ', data.ex3)
imChatRef.value.imChatObj.imChat.timGroupId = data.ex3
// imChatRef.value.imChatObj.imChat.setGroupMsgReceive(data.ex3)
}
@ -181,16 +183,16 @@ const sideChange = async o => {
}).then(async() => {
await imChatRef.value?.imChatObj?.imChat?.sendMsgClosed() //
// const elMsg = ElMessage.warning({duration:0,message:'...'})
const elMsg = ElLoading.service({lock: true, text: '正在下课...', background: 'rgba(0, 0, 0, 0.7)'})
// const elMsg = ElLoading.service({lock: true, text: '...', background: 'rgba(0, 0, 0, 0.7)'})
// 2
setTimeout(async() => {
elMsg.close()
// elMsg.close()
toolStore.isToolWin = false
await classManageApi.endClass(route.query.reservId)
await imChatRef.value?.deleteGroup() //
await imChatRef.value?.logout() // 退im
ipcMsgSend('tool-sphere:close') //
}, 2000);
}, 200);
// isOver.value = false
// setIgnore(true) // -穿