WGShare.Client.Electron/preload.js

198 lines
6.0 KiB
JavaScript

// // 在 preload 脚本中。
const { ipcRenderer } = require('electron')
window.electron = {
// socket
startSignalr: (user) => {
ipcRenderer.invoke('startSignalr', user)
},
offSignalr: () => {
ipcRenderer.invoke('offSignalr')
},
onStop: () => {
ipcRenderer.invoke('onStop')
},
onInvoke: (str, data) => {
ipcRenderer.invoke('onInvoke', str, data)
},
changeLocalStorage: (callback) => {
ipcRenderer.on('changeLocalStorage', callback)
},
onOtherSignalr: (callback) => {
ipcRenderer.invoke('onOtherSignalr')
ipcRenderer.removeAllListeners('onOtherSignalr')
ipcRenderer.on('onOtherSignalr', callback)
},
onSignalr: (callback) => {
ipcRenderer.invoke('onSignalr')
ipcRenderer.removeAllListeners('onSignalr')
ipcRenderer.on('onSignalr', callback)
},
// 设置窗口大小
setMainWindowSize: (config) => {
ipcRenderer.invoke('setMainWindowSize', { ...config })
},
// 获取窗口大小
getWindowSize: (config) => {
return ipcRenderer.invoke('getWindowSize')
},
// 设置窗口状态
setViewStatus: (status) => {
ipcRenderer.invoke('setViewStatus', status)
},
// 获取当前是否全屏
getIsMaximized: () => {
return ipcRenderer.invoke('getIsMaximized')
},
// 获取app路径
getAppPath: () => {
return ipcRenderer.invoke('getAppPath')
},
// 获取版本号
getVersion: () => {
return ipcRenderer.invoke('getVersion')
},
// 获取窗口是否显示
isVisible: () => {
return ipcRenderer.invoke('isVisible')
},
// 获取共享屏幕列表
getSources: () => {
return ipcRenderer.invoke('getSources')
},
// 复制文字
setWriteText: (text) => {
return ipcRenderer.invoke('setWriteText', text)
},
// 加入房间通知
joinNotification: (user) => {
ipcRenderer.invoke('joinNotification', user)
},
// 监听退出
onQuit: (callback) => {
ipcRenderer.on('onQuit', callback)
},
// 退出房间
quit: (bool) => {
return ipcRenderer.invoke('quit', bool)
},
// 监听更新
onUpdate: (callback) => {
ipcRenderer.on('update', callback)
},
// 执行退出房间
quitAndInstall: (callback) => {
ipcRenderer.on('quitAndInstall', callback)
},
// 点击任务栏图标是否打开窗口
isOpenWindows: (callback) => {
ipcRenderer.on('isOpenWindows', callback)
},
// 设置环境变量
setEnv: (str) => {
ipcRenderer.invoke('setEnv', str)
},
// 通知下载最新的包
onDownload: (type) => {
ipcRenderer.invoke('updateDownload', type)
},
// 选择文件夹
selectFilePath: (data) => {
ipcRenderer.invoke('selectFilePath', data)
},
// 发送文件夹路径
onFilePath: (callback) => {
ipcRenderer.on('onFilePath', callback)
},
// 下载文件
downFile: (callback) => {
ipcRenderer.on('downFile', callback)
},
// 读取注册表
getRegistry: () => {
return ipcRenderer.invoke('getRegistry')
},
// 写入注册表
setRegistry: (uuid) => {
ipcRenderer.invoke('setRegistry', uuid)
},
// 创建子窗口
createChildWindow: (str) => {
switch (str) {
case 'show':
ipcRenderer.invoke('setChildWindowShow', {
key: 'shareScreenWindow',
})
ipcRenderer.invoke('setChildWindowShow', {
key: 'chatSmallWindow',
})
break;
case 'hide':
ipcRenderer.invoke('createChildWindow', {
url: location.origin + `/#/noticeWindow`,
width: 388,
height: 150,
key: 'noticeWindow',
})
ipcRenderer.invoke('createChildWindow', {
url: location.origin + `/#/shareScreenWindow`,
width: 400,
height: 80,
key: 'shareScreenWindow',
})
ipcRenderer.invoke('createChildWindow', {
url: location.origin + `/#/chatSmallWindow`,
width: 200,
height: 150,
key: 'chatSmallWindow',
})
ipcRenderer.invoke('createChildWindow', {
url: location.origin + `/#/chatBigWindow`,
width: 540,
height: 640,
key: 'chatBigWindow',
})
ipcRenderer.invoke('createChildWindow', {
url: location.origin + `/#/userListWindow`,
width: 440,
height: 540,
key: 'userListWindow',
})
break;
case 'stop':
ipcRenderer.invoke('setChildWindowShow', {
key: 'shareScreenWindow',
bool: true
})
ipcRenderer.invoke('setChildWindowShow', {
key: 'chatSmallWindow',
bool: true
})
break;
}
},
// 关闭子窗口
closeChildWindow: (key) => {
ipcRenderer.invoke('closeChildWindow', key)
},
// 设置子窗口
setChildWindow: (config) => {
ipcRenderer.invoke('setChildWindow', config)
},
// 隐藏主窗口
setChildWindowShow: (config) => {
ipcRenderer.invoke('setChildWindowShow', config)
},
// 定位主窗口
setPosition: (data) => {
ipcRenderer.invoke('setPosition', data)
},
// 窗口通信传参
windowHandleMessage: (data) => {
ipcRenderer.invoke('windowHandleMessage', data)
},
// 窗口通信回调
windowHandleMessageCallBack: (callback) => {
ipcRenderer.on('windowHandleMessageCallBack', callback)
},
}