数据共享配置 渲染器和主进程
This commit is contained in:
parent
b922219602
commit
d033c217d6
14
package.json
14
package.json
|
@ -30,6 +30,7 @@
|
|||
"crypto-js": "^4.2.0",
|
||||
"electron-dl-manager": "^3.0.0",
|
||||
"electron-log": "^5.1.7",
|
||||
"electron-store": "8.0.0",
|
||||
"electron-updater": "^6.1.7",
|
||||
"element-plus": "^2.7.6",
|
||||
"fabric": "^5.3.0",
|
||||
|
@ -63,18 +64,5 @@
|
|||
"vite-plugin-windicss": "^1.9.3",
|
||||
"vue": "^3.4.30",
|
||||
"windicss": "^3.5.6"
|
||||
},
|
||||
"build": {
|
||||
"win": {
|
||||
"extraFiles": [
|
||||
{
|
||||
"from": "./node_modules/im_electron_sdk/lib/",
|
||||
"to": "./resources",
|
||||
"filter": [
|
||||
"**/*"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,13 +3,17 @@ 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封装
|
||||
import Store from './store' // Store封装
|
||||
import updateInit from './update'
|
||||
|
||||
// 代理 electron/remote
|
||||
// 第一步:引入remote
|
||||
import remote from '@electron/remote/main'
|
||||
// 第二步: 初始化remote
|
||||
remote.initialize()
|
||||
import updateInit from './update'
|
||||
// 持久化数据-初始化
|
||||
Store.initialize()
|
||||
|
||||
File({ app, shell, BrowserWindow, ipcMain })
|
||||
process.env['ELECTRON_DISABLE_SECURITY_WARNINGS'] = 'true'
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
/**
|
||||
* @description 解决 主进程|渲染进程 数据共享
|
||||
*/
|
||||
import Store from 'electron-store' // 持久化存储
|
||||
|
||||
// 设置ipc与渲染器通信
|
||||
Store.initRenderer()
|
||||
|
||||
// 默认共享数据
|
||||
const defaultData = {
|
||||
model: 'select', // 悬浮球-当前模式
|
||||
showBoardAll: false, // 全屏画板-是否显示
|
||||
isPdfWin: false, // pdf窗口是否打开
|
||||
isToolWin: false, // 工具窗口是否打开
|
||||
curSubjectNode: {
|
||||
data: {}, // 当前教材节点 (包含当前教材 单元)
|
||||
querySearch: {} // 查询资源所需参数
|
||||
}
|
||||
}
|
||||
|
||||
// 初始化
|
||||
export function initialize(){
|
||||
const store = new Store({
|
||||
name: 'cache-store', // 存储文件名
|
||||
fileExtension: 'ini', // 文件后缀名
|
||||
encryptionKey: 'Eihrjwi7h104h2Kub423' // 数据加密-防止用户直接改配置
|
||||
})
|
||||
store.clear() // 先清除-所有缓存数据
|
||||
store.set(defaultData) // 初始化-默认数据
|
||||
return store
|
||||
}
|
||||
export default { initialize }
|
|
@ -6,12 +6,14 @@
|
|||
// Remote.app.getAppPath() E:\njys-work\AIx_Smarttalk\dist\win-unpacked\resources\app.asar
|
||||
// path.join(__dirname) 根目录 E:\njys-work\AIx_Smarttalk\dist\win-unpacked\resources\app.asar\out\renderer
|
||||
|
||||
const isNode = typeof require !== 'undefined' // 是否支持node函数
|
||||
const isNode = typeof require !== 'undefined' // 是否支持node函数
|
||||
const path = isNode?require('path'):{}
|
||||
const Remote = isNode?require('@electron/remote'):{}
|
||||
const { ipcRenderer } = isNode?require('electron'):window.electron || {}
|
||||
const API = isNode?window.api:{} // preload-api
|
||||
const API = isNode?window.api:{} // preload-api
|
||||
import { useToolState } from '@/store/modules/tool' // 获取store状态
|
||||
const Store = isNode?require('electron-store'):null // 持久化存储
|
||||
|
||||
// 常用变量
|
||||
const BaseUrl = isNode?process.env['ELECTRON_RENDERER_URL']+'/#':''
|
||||
const isDev = isNode?process.env.NODE_ENV !== 'production':''
|
||||
|
@ -19,6 +21,12 @@ const toolState = useToolState() // 获取store状态
|
|||
|
||||
// 暴露Remote中的属性
|
||||
export const ipcMain = Remote?.ipcMain || {}
|
||||
// 暴露Store存储对象
|
||||
export const store = Store ? new Store({
|
||||
name: 'cache-store', // 存储文件名
|
||||
fileExtension: 'ini', // 文件后缀名
|
||||
encryptionKey: 'Eihrjwi7h104h2Kub423' // 数据加密-防止用户直接改配置
|
||||
}) : {}
|
||||
/**
|
||||
* 获取静态资源,开发和生产环境
|
||||
* @param {*} url
|
||||
|
|
|
@ -57,6 +57,8 @@ import useUserStore from '@/store/modules/user'
|
|||
import leftBg2 from '@/assets/images/login/left-bg2.png'
|
||||
import WindowTools from '@/components/window-tools/index.vue'
|
||||
import SelectSubject from '@/components/select-subject/index.vue'
|
||||
import {store} from '@/utils/tool'
|
||||
window.test = store
|
||||
|
||||
const { session } = require('@electron/remote')
|
||||
const downloadProp = ref(0)
|
||||
|
|
Loading…
Reference in New Issue